-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathINSTALAR.command
More file actions
executable file
·60 lines (50 loc) · 1.55 KB
/
Copy pathINSTALAR.command
File metadata and controls
executable file
·60 lines (50 loc) · 1.55 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
#!/bin/zsh
# Atalho de duplo-clique: compila o PROJECTUS, abre o instalador e reinicia
# o servidor local usando o binário recém-compilado.
#
# Como usar:
# - duplo-clique neste arquivo no Finder
# - OU: ./INSTALAR.command
# - OU: pnpm instalar
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
cd "$ROOT"
for arg in "$@"; do
case "$arg" in
-h|--help)
exec ./scripts/instalar.sh "$@"
;;
esac
done
SERVER_LABEL="com.projectus.server"
SERVER_BIN="$ROOT/target/release/projectus-server"
PLIST="$HOME/Library/LaunchAgents/$SERVER_LABEL.plist"
LOG_DIR="$HOME/Library/Logs/PROJECTUS"
LAUNCH_DOMAIN="gui/$UID"
parar_server() {
if [[ -f "$PLIST" ]]; then
launchctl bootout "$LAUNCH_DOMAIN" "$PLIST" 2>/dev/null || true
fi
pkill -x projectus-server 2>/dev/null || true
}
iniciar_server() {
mkdir -p "$LOG_DIR"
if [[ -f "$PLIST" ]]; then
if ! launchctl bootstrap "$LAUNCH_DOMAIN" "$PLIST" 2>/dev/null; then
launchctl kickstart -k "$LAUNCH_DOMAIN/$SERVER_LABEL"
fi
echo ">> servidor reiniciado via launchd"
return
fi
PROJECTUS_WEB_DIST="$ROOT/apps/web/dist" nohup "$SERVER_BIN" >"$LOG_DIR/server.log" 2>"$LOG_DIR/server.err.log" &
disown $! 2>/dev/null || true
echo ">> servidor iniciado: $SERVER_BIN"
}
echo ">> parando servidor PROJECTUS atual..."
parar_server
./scripts/instalar.sh "$@"
echo ">> compilando projectus-server em release..."
cargo build --release -p projectus-server --manifest-path "$ROOT/Cargo.toml"
echo ">> iniciando servidor PROJECTUS recém-compilado..."
parar_server
iniciar_server