Repository navigation
Expand file tree
/
Copy pathrelease.sh
More file actions
executable file
Β·163 lines (128 loc) Β· 4.45 KB
/
Copy pathrelease.sh
File metadata and controls
executable file
Β·163 lines (128 loc) Β· 4.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#!/bin/bash
# GitPeek Release Script
# Creates a GitHub release with a DMG installer
set -e
# Configuration
APP_NAME="GitPeek"
# Get version from Info.plist
VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "GitPeek/Info.plist" 2>/dev/null || echo "1.0.0")
RELEASE_NAME="GitPeek v${VERSION}"
RELEASE_TAG="v${VERSION}"
echo "π Creating Release: ${RELEASE_NAME}"
# Check if gh is installed
if ! command -v gh &> /dev/null; then
echo "β GitHub CLI (gh) is not installed."
echo "Install it with: brew install gh"
exit 1
fi
# Check if logged in to GitHub
if ! gh auth status &> /dev/null; then
echo "β Not logged in to GitHub."
echo "Run: gh auth login"
exit 1
fi
# Clean previous builds
echo "π§Ή Cleaning previous builds..."
rm -rf .build
rm -rf "${APP_NAME}.app"
rm -rf "${APP_NAME}-${VERSION}.dmg"
rm -rf release-tmp
# Build the app
echo "π¨ Building ${APP_NAME}..."
./build.sh
# Create a temporary directory for DMG contents
echo "π Preparing DMG contents..."
mkdir -p release-tmp
cp -r "${APP_NAME}.app" release-tmp/
ln -s /Applications release-tmp/Applications
# Create DMG
echo "πΏ Creating DMG installer..."
hdiutil create -volname "${APP_NAME}" \
-srcfolder release-tmp \
-ov -format UDZO \
"${APP_NAME}-${VERSION}.dmg"
# Calculate checksums
echo "π Calculating checksums..."
shasum -a 256 "${APP_NAME}-${VERSION}.dmg" > "${APP_NAME}-${VERSION}.dmg.sha256"
# Create release notes
echo "π Creating release notes..."
if [ -f "release_notes_1.2.0.md" ]; then
cp release_notes_1.2.0.md release_notes.md
# Add checksums to the release notes
echo "" >> release_notes.md
echo "### π Checksums" >> release_notes.md
echo "" >> release_notes.md
echo "\`\`\`" >> release_notes.md
cat "${APP_NAME}-${VERSION}.dmg.sha256" >> release_notes.md
echo "\`\`\`" >> release_notes.md
else
cat > release_notes.md << EOF
# ${RELEASE_NAME}
## π Major Update with Stability Improvements!
This release brings significant improvements to stability, UI/UX, and introduces Git worktree support.
### β¨ New Features
- **Git Worktree Support** - Detect and display Git worktrees with visual indicators
- **Simplified Theme System** - Clean, modern white-background UI optimized for readability
- **Enhanced Repository Management** - Improved file dialog for adding repositories
### π Bug Fixes
- Fixed popover dismissal when clicking outside
- Fixed Terminal app integration issues
- Fixed Cursor editor integration to open properly
- Fixed file dialog crashes when selecting Desktop folder
- Resolved repository data persistence issues
- Fixed app startup crashes
### π¨ UI/UX Improvements
- Changed Clean status color to mint for better visibility
- Staged files now shown in blue
- Single file modifications shown in gray for clarity
- Improved hover and selection states
- Added version display in menu header
- Better visual hierarchy with subtle backgrounds
### π§ Technical Improvements
- Removed non-functional dark mode to simplify codebase
- Reduced code complexity by ~200 lines
- Improved build system for standalone app creation
- Better error handling throughout
- Enhanced AppleScript integration for Terminal
### π¦ Installation
1. Download \`${APP_NAME}-${VERSION}.dmg\`
2. Open the DMG file
3. Drag GitPeek to your Applications folder
4. Launch GitPeek from Applications
5. The GitPeek icon will appear in your menu bar
### π§ Requirements
- macOS 13.0 (Ventura) or later
- Git installed on your system
### π Checksums
\`\`\`
$(cat "${APP_NAME}-${VERSION}.dmg.sha256")
\`\`\`
### π Acknowledgments
Thanks to all users for their feedback and patience while we improved GitPeek!
---
**Full Changelog**: https://github.com/ryota-kishimoto/gitpeek/compare/v1.0.0...v1.2.0
EOF
fi
# Create GitHub release
echo "π Creating GitHub release..."
gh release create "${RELEASE_TAG}" \
--title "${RELEASE_NAME}" \
--notes-file release_notes.md \
--draft \
"${APP_NAME}-${VERSION}.dmg" \
"${APP_NAME}-${VERSION}.dmg.sha256"
# Clean up
echo "π§Ή Cleaning up..."
rm -rf release-tmp
rm -f release_notes.md
echo ""
echo "β
Release draft created successfully!"
echo ""
echo "π Next steps:"
echo "1. Review the draft release at: https://github.com/ryota-kishimoto/gitpeek/releases"
echo "2. Edit release notes if needed"
echo "3. Publish the release when ready"
echo ""
echo "π¦ Artifacts uploaded:"
echo " - ${APP_NAME}-${VERSION}.dmg"
echo " - ${APP_NAME}-${VERSION}.dmg.sha256"