Allow executing run script w/o prior setup

This change allows a bit quicker and simpler setup on new servers.
Rather than setting up dependencies, virtual environment, etc, a systemd
daemon, for example, can just ExecStart the script from any location
without having to perform any preliminary setup. The only prerequisite
step now is having Python3+ installed.
main
Ben Busby 2021-11-19 20:30:13 -07:00
parent e06ff85579
commit 7f91de7399
No known key found for this signature in database
GPG Key ID: 339B7B7EB5333D14
1 changed files with 14 additions and 1 deletions

15
run
View File

@ -7,6 +7,19 @@ set -euo pipefail
SCRIPT_DIR="$(builtin cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" SCRIPT_DIR="$(builtin cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
if [[ ! -x "$(command -v python3)" ]]; then
echo "Python3 required -- please install first"
exit 1
fi
if [[ ! -d "$SCRIPT_DIR/venv" ]]; then
python3 -m venv venv
"$SCRIPT_DIR"/venv/bin/pip install --upgrade pip
"$SCRIPT_DIR"/venv/bin/pip install -r requirements.txt
fi
cd "$SCRIPT_DIR"
# Set directory to serve static content from # Set directory to serve static content from
SUBDIR="${1:-app}" SUBDIR="${1:-app}"
export APP_ROOT="$SCRIPT_DIR/$SUBDIR" export APP_ROOT="$SCRIPT_DIR/$SUBDIR"
@ -24,7 +37,7 @@ if [[ "$SUBDIR" == "test" ]]; then
pytest -sv pytest -sv
else else
mkdir -p "$STATIC_FOLDER" mkdir -p "$STATIC_FOLDER"
python3 -um app \ "$SCRIPT_DIR"/venv/bin/python -um app \
--host "${ADDRESS:-0.0.0.0}" \ --host "${ADDRESS:-0.0.0.0}" \
--port "${PORT:-"${EXPOSE_PORT:-5000}"}" --port "${PORT:-"${EXPOSE_PORT:-5000}"}"
fi fi