blob: a58922c5dc822c154df155722762500784224f1b (
plain)
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
|
#!/bin/bash
set -euo pipefail
ENV_FILE="/etc/yamtrack/yamtrack.env"
APP_DIR="/usr/share/yamtrack/src"
PY="/usr/lib/yamtrack/venv/bin/python"
MANAGE="${APP_DIR}/manage.py"
if [[ ! -r "$ENV_FILE" ]]; then
echo "Error: missing $ENV_FILE" >&2
exit 1
fi
# Prefer systemd-run so we inherit the same sandboxing-ish environment.
if command -v systemd-run >/dev/null 2>&1; then
exec systemd-run --quiet --pty --wait --collect \
--unit=yamtrack-manage-$$ \
--property=User=yamtrack \
--property=Group=yamtrack \
--property=WorkingDirectory="$APP_DIR" \
--property=Environment=YAMTRACK_DATA_DIR=/var/lib/yamtrack \
--property=EnvironmentFile=/usr/lib/yamtrack/version.env \
--property=EnvironmentFile="$ENV_FILE" \
--property=StateDirectory=yamtrack \
"$PY" "$MANAGE" "$@"
fi
# Fallback: use su
exec su -s /bin/bash yamtrack -c "
set -euo pipefail
set -a
source /usr/lib/yamtrack/version.env
export YAMTRACK_DATA_DIR=/var/lib/yamtrack
source '$ENV_FILE'
set +a
cd '$APP_DIR'
exec '$PY' '$MANAGE' \"\$@\"
" -- "$@"
|