50 lines
1.6 KiB
Bash
Executable File
50 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e # Exit immediately if a command exits with a non-zero status.
|
|
|
|
# --- Configuration ---
|
|
COMPOSE_FILE="./host/next/docker/compose.yml"
|
|
DEFAULT_PROJECT_NAME="techtracker"
|
|
DEV_PROJECT_NAME="dev-techtracker" # The project name for dev mode
|
|
|
|
COMPOSE_PROJECT_FLAG=${DEFAULT_PROJECT_NAME} # This will hold "-p dev-techtracker" if --dev is used
|
|
|
|
# --- Function to display usage ---
|
|
usage() {
|
|
echo "Usage: $0 [OPTIONS]"
|
|
echo "Or: ./update.sh [OPTIONS]" # Assuming the script is named update.sh
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -d, --dev Run in development mode, using project name '${DEV_PROJECT_NAME}'."
|
|
echo " Adds '-p ${DEV_PROJECT_NAME}' to docker compose commands."
|
|
echo " -h, --help Display this help message."
|
|
exit 1
|
|
}
|
|
|
|
# --- Parse arguments ---
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case "$1" in
|
|
-d|--dev)
|
|
COMPOSE_PROJECT_FLAG=${DEV_PROJECT_NAME}
|
|
shift # Consume the argument
|
|
;;
|
|
-h|--help)
|
|
usage
|
|
;;
|
|
*)
|
|
echo "Error: Unknown argument '$1'" >&2
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# --- Main Script Logic ---
|
|
echo "--- Pulling latest git changes ---"
|
|
git pull
|
|
echo "--- Building Docker Compose services ${COMPOSE_PROJECT_FLAG} ---"
|
|
sudo docker compose -p ${COMPOSE_PROJECT_FLAG} -f "${COMPOSE_FILE}" build
|
|
echo "--- Bringing down Docker Compose services ${COMPOSE_PROJECT_FLAG} ---"
|
|
sudo docker compose -p ${COMPOSE_PROJECT_FLAG} -f "${COMPOSE_FILE}" down
|
|
echo "--- Bringing up Docker Compose services ${COMPOSE_PROJECT_FLAG} in detached mode ---"
|
|
sudo docker compose -p ${COMPOSE_PROJECT_FLAG} -f "${COMPOSE_FILE}" up -d
|
|
echo "--- Script finished successfully ---"
|