envision/scripts/_clone_or_pull.sh

39 lines
622 B
Bash
Executable file

#!/bin/bash
# exit on error
# echo commands
set -ev
GIT_URL=$1
REPO_DIR=$2
DO_PULL=$3
_usage() {
echo "Usage: $0 GIT_URL REPO_DIR [DO_PULL]"
exit 1
}
if [[ -z $REPO_DIR ]]; then
_usage
fi
if [[ -z $GIT_URL ]]; then
_usage
fi
if [[ -z $DO_PULL ]]; then
DO_PULL=1
fi
if [[ -d "$REPO_DIR" ]]; then
if [[ ! -d "$REPO_DIR/.git" ]]; then
rmdir "$REPO_DIR"
git clone "$GIT_URL" "$REPO_DIR" --recurse-submodules
else
if [[ "$DO_PULL" -eq 1 ]]; then
git -C "$REPO_DIR" pull
fi
fi
else
git clone "$GIT_URL" "$REPO_DIR" --recurse-submodules
fi