-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdev_deploy.sh
More file actions
executable file
·66 lines (56 loc) · 2.21 KB
/
dev_deploy.sh
File metadata and controls
executable file
·66 lines (56 loc) · 2.21 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
#!/bin/bash
# RustKVM Development Deployment Script
set -e # Exit on error
echo "🚀 Starting RustKVM deployment..."
# Args: -r/--remote <host> (required), -u/--user <user> (optional, default: root)
REMOTE_USER="root"
while [[ $# -gt 0 ]]; do
case $1 in
-r|--remote)
REMOTE_HOST="$2"
shift 2
;;
-u|--user)
REMOTE_USER="$2"
shift 2
;;
--help)
echo "Usage: $0 -r <remote_ip> [-u <remote_user>]"
echo "Example: $0 -r 192.168.0.17"
exit 0
;;
*)
echo "Unknown option: $1"
echo "Usage: $0 -r <remote_ip> [-u <remote_user>]"
exit 1
;;
esac
done
if [ -z "${REMOTE_HOST}" ]; then
echo "Error: remote host is required. Usage: $0 -r <remote_ip> [-u <remote_user>]"
exit 1
fi
# 1. Build application
echo "🔨 Building application..."
cargo build -Z build-std --target aarch64-unknown-linux-gnu -p rustkvm --bin rustkvm_app --release
# 2. Stop existing processes and cleanup
echo "📱 Stopping existing processes..."
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'killall rustkvm_app || true'
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'fuser -k /dev/video0 || true'
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'fuser -k 80/tcp || true'
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'fuser -k 443/tcp || true'
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'rm -f /userdata/rustkvm/bin/rustkvm_app /userdata/rustkvm/log/rustkvm_app.log'
# 3. Deploy to device
echo "📦 Deploying to device..."
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'mkdir -p /userdata/rustkvm/bin'
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'mkdir -p /userdata/rustkvm/log'
ssh "${REMOTE_USER}@${REMOTE_HOST}" "cat > /userdata/rustkvm/bin/rustkvm_app" < target/aarch64-unknown-linux-gnu/release/rustkvm_app
ssh "${REMOTE_USER}@${REMOTE_HOST}" 'chmod +x /userdata/rustkvm/bin/rustkvm_app'
# # 4. Start application
# echo "▶️ Starting application..."
# ssh "${REMOTE_USER}@${REMOTE_HOST}" 'nohup setsid /userdata/rustkvm/bin/rustkvm_app </dev/null >>/userdata/rustkvm/log/rustkvm_app.log 2>&1 &'
# ssh "${REMOTE_USER}@${REMOTE_HOST}" 'sleep 2'
# # 5. Show logs
# echo "📋 Showing logs (Press Ctrl+C to exit)..."
# ssh "${REMOTE_USER}@${REMOTE_HOST}" 'tail -f /userdata/rustkvm/log/rustkvm_app.log'
ssh "${REMOTE_USER}@${REMOTE_HOST}"