-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelease.sh
More file actions
executable file
·90 lines (75 loc) · 2.16 KB
/
release.sh
File metadata and controls
executable file
·90 lines (75 loc) · 2.16 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
#!/bin/bash
# ADJ Valet Release Script
set -e
VERSION=${1:-"v1.0.0"}
# Detect the native target
if [[ "$OSTYPE" == "darwin"* ]]; then
if [[ $(uname -m) == "arm64" ]]; then
TARGET=${2:-"aarch64-apple-darwin"}
else
TARGET=${2:-"x86_64-apple-darwin"}
fi
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
TARGET=${2:-"x86_64-unknown-linux-gnu"}
else
TARGET=${2:-"x86_64-unknown-linux-gnu"}
fi
RELEASE_DIR="release"
echo "Building ADJ Valet $VERSION for $TARGET..."
# Clean up previous builds
rm -rf $RELEASE_DIR
mkdir -p $RELEASE_DIR/adj-valet
# Build frontend
echo "Building frontend..."
cd adj-valet-front
npm ci
npm run build
cd ..
# Build backend
echo "Building backend..."
cd backend
if rustup target list --installed | grep -q "$TARGET"; then
cargo build --release --target $TARGET
else
echo "Installing target $TARGET..."
rustup target add $TARGET
cargo build --release --target $TARGET
fi
cd ..
# Copy files
echo "Packaging release..."
cp backend/target/$TARGET/release/backend $RELEASE_DIR/adj-valet/adj-valet-backend
chmod +x $RELEASE_DIR/adj-valet/adj-valet-backend
cp -r adj-valet-front/dist $RELEASE_DIR/adj-valet/web
cp README.md $RELEASE_DIR/adj-valet/
# cp adj/README.md $RELEASE_DIR/adj-valet/ADJ-SPEC.md
# Create startup script
cat > $RELEASE_DIR/adj-valet/start.sh << 'EOF'
#!/bin/bash
cd "$(dirname "$0")"
echo "Starting ADJ Valet..."
echo "Backend will be available at http://localhost:8000"
echo "Opening web interface..."
# Start backend in background
./adj-valet-backend --port 8000 &
BACKEND_PID=$!
# Wait a moment for backend to start
sleep 2
# Try to open in browser
if command -v xdg-open > /dev/null; then
xdg-open "file://$(pwd)/web/index.html"
elif command -v open > /dev/null; then
open "file://$(pwd)/web/index.html"
else
echo "Please open file://$(pwd)/web/index.html in your browser"
fi
echo "Press Ctrl+C to stop the server"
wait $BACKEND_PID
EOF
chmod +x $RELEASE_DIR/adj-valet/start.sh
# Create archive
cd $RELEASE_DIR
tar czf adj-valet-$VERSION-$TARGET.tar.gz adj-valet/
cd ..
echo "Release created: $RELEASE_DIR/adj-valet-$VERSION-$TARGET.tar.gz"
echo "To test: cd $RELEASE_DIR/adj-valet && ./start.sh"