#!/bin/bash # - Process command line GIT_REPO_BRANCH="production" while [ $# -gt 0 ]; do case "$1" in -h|--help) echo "Usage: $0 [--branch ]" exit 0 ;; --branch) shift 1 if [ $# -eq 0 ] ; then echo "$0: ERROR - Branch not specified." ; exit 1 ; fi GIT_REPO_BRANCH="$1" shift 1 ;; esac done # - Include ansible virtual environment . "${HOME}/.ansible-venv/bin/activate" SCRIPT_NAME="$(basename "${0}")" GIT_REPO_BASE="https://gitea.admin-a.hpetersenfamily.com/heath/ansible" GIT_REPO="${GIT_REPO_BASE}.git" LOG_DIR="/var/log/ansible-pull.sh" LOG_FILE="${LOG_DIR}/ansible-pull.sh.log" LOCK_FILE="/tmp/ansible-pull.sh.lock" # - Redirect all further output to the log file exec >>"${LOG_FILE}" 2>&1 # - Log that we've gotten this far echo -n "$(basename "${0}"): $(date "+%Y-%m-%d %H:%M:%S")" # - If we can't lock the lock file, don't proceed exec 9>"${LOCK_FILE}" if ! flock -n 9 ; then echo " - ERROR - Another copy of ${SCRIPT_NAME} is already running! Exiting..." ; exit 1 ; fi # - Do our work echo ansible-pull --only-if-changed --url "${GIT_REPO}" --checkout "${GIT_REPO_BRANCH}" "${@}"