-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
·64 lines (52 loc) · 2.2 KB
/
deploy.sh
File metadata and controls
executable file
·64 lines (52 loc) · 2.2 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
#!/bin/bash
# Deploy freshly built openfork binary with backup rotation
set -e
INSTALL_DIR="$HOME/.opencode/bin"
SOURCE_DIR="$(dirname "$0")/packages/opencode/dist/opencode-darwin-arm64/bin"
BINARY_NAME="opencode"
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${BLUE}OpenCode Fork Deployment Script${NC}"
echo "=============================="
# Check if source binary exists
if [ ! -f "$SOURCE_DIR/opencode" ]; then
echo -e "${YELLOW}Error: Built binary not found at $SOURCE_DIR/opencode${NC}"
echo "Run: cd packages/opencode && bun run build"
exit 1
fi
# Create install directory if it doesn't exist
mkdir -p "$INSTALL_DIR"
# Rotate backups: .backup2 -> .backup3, .backup1 -> .backup2
if [ -f "$INSTALL_DIR/$BINARY_NAME.backup1" ]; then
echo -e "${BLUE}→${NC} Rotating backup: .backup1 → .backup2"
mv "$INSTALL_DIR/$BINARY_NAME.backup1" "$INSTALL_DIR/$BINARY_NAME.backup2"
fi
# Backup current binary if it exists
if [ -f "$INSTALL_DIR/$BINARY_NAME" ]; then
echo -e "${BLUE}→${NC} Backing up current: $BINARY_NAME → .backup1"
cp "$INSTALL_DIR/$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME.backup1"
fi
# Deploy new binary
echo -e "${BLUE}→${NC} Deploying new binary..."
cp "$SOURCE_DIR/opencode" "$INSTALL_DIR/$BINARY_NAME"
chmod +x "$INSTALL_DIR/$BINARY_NAME"
# Code signing and xattr
echo -e "${BLUE}→${NC} Signing binary..."
codesign --force --sign - "$INSTALL_DIR/$BINARY_NAME" 2>/dev/null || echo " (Code signing not available, skipping)"
echo -e "${BLUE}→${NC} Removing quarantine attribute..."
xattr -d com.apple.quarantine "$INSTALL_DIR/$BINARY_NAME" 2>/dev/null || echo " (No quarantine attribute found)"
# Get version
VERSION=$("$INSTALL_DIR/$BINARY_NAME" --version)
echo ""
echo -e "${GREEN}✓ Deployment complete!${NC}"
echo -e " Version: ${GREEN}$VERSION${NC}"
echo -e " Location: $INSTALL_DIR/$BINARY_NAME"
echo ""
echo "Backups available:"
[ -f "$INSTALL_DIR/$BINARY_NAME.backup1" ] && echo " - $INSTALL_DIR/$BINARY_NAME.backup1 (previous)"
[ -f "$INSTALL_DIR/$BINARY_NAME.backup2" ] && echo " - $INSTALL_DIR/$BINARY_NAME.backup2 (2 versions ago)"
echo ""
echo -e "${YELLOW}Restart opencode to use the new version${NC}"