forked from OpenSenseNova/MemSense
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall-launchd.sh
More file actions
executable file
·115 lines (105 loc) · 4.14 KB
/
Copy pathinstall-launchd.sh
File metadata and controls
executable file
·115 lines (105 loc) · 4.14 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
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
LAUNCH_DIR="$HOME/Library/LaunchAgents"
mkdir -p "$LAUNCH_DIR"
mkdir -p "$ROOT_DIR/.runtime"
if [[ ! -f .env ]]; then
echo "[memsense] missing .env; create it first"
exit 1
fi
cat > "$LAUNCH_DIR/local.memsense.bge.plist" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>local.memsense.bge</string>
<key>WorkingDirectory</key><string>$ROOT_DIR</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-lc</string>
<string>set -a; source .env; set +a; exec .venv-bge/bin/python scripts/bge_local_server.py</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>$ROOT_DIR/.runtime/launchd-bge.out.log</string>
<key>StandardErrorPath</key><string>$ROOT_DIR/.runtime/launchd-bge.err.log</string>
</dict>
</plist>
PLIST
cat > "$LAUNCH_DIR/local.memsense.server.plist" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>local.memsense.server</string>
<key>WorkingDirectory</key><string>$ROOT_DIR</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-lc</string>
<string>set -a; source .env; set +a; exec npm run server</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>$ROOT_DIR/.runtime/launchd-server.out.log</string>
<key>StandardErrorPath</key><string>$ROOT_DIR/.runtime/launchd-server.err.log</string>
</dict>
</plist>
PLIST
cat > "$LAUNCH_DIR/local.memsense.worker.plist" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>local.memsense.worker</string>
<key>WorkingDirectory</key><string>$ROOT_DIR</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-lc</string>
<string>set -a; source .env; set +a; exec npm run worker</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>$ROOT_DIR/.runtime/launchd-worker.out.log</string>
<key>StandardErrorPath</key><string>$ROOT_DIR/.runtime/launchd-worker.err.log</string>
</dict>
</plist>
PLIST
cat > "$LAUNCH_DIR/local.memsense.tag-worker.plist" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>local.memsense.tag-worker</string>
<key>WorkingDirectory</key><string>$ROOT_DIR</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>-lc</string>
<string>set -a; source .env; set +a; exec npm run tag-worker</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>$ROOT_DIR/.runtime/launchd-tag-worker.out.log</string>
<key>StandardErrorPath</key><string>$ROOT_DIR/.runtime/launchd-tag-worker.err.log</string>
</dict>
</plist>
PLIST
launchctl unload "$LAUNCH_DIR/local.memsense.bge.plist" >/dev/null 2>&1 || true
launchctl unload "$LAUNCH_DIR/local.memsense.server.plist" >/dev/null 2>&1 || true
launchctl unload "$LAUNCH_DIR/local.memsense.worker.plist" >/dev/null 2>&1 || true
launchctl unload "$LAUNCH_DIR/local.memsense.tag-worker.plist" >/dev/null 2>&1 || true
launchctl load "$LAUNCH_DIR/local.memsense.bge.plist"
launchctl load "$LAUNCH_DIR/local.memsense.server.plist"
launchctl load "$LAUNCH_DIR/local.memsense.worker.plist"
launchctl load "$LAUNCH_DIR/local.memsense.tag-worker.plist"
echo "[memsense] launchd services installed"
echo " - local.memsense.bge"
echo " - local.memsense.server"
echo " - local.memsense.worker"
echo " - local.memsense.tag-worker"
echo "[memsense] logs in $ROOT_DIR/.runtime/launchd-*.log"