diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..fc24223 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail +trap cleanup SIGINT SIGTERM ERR EXIT + +# If you need to cd to the script directory: +script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) + +usage() { + cat <&2 -e "${1-}" +} + +die() { + local msg=$1 + local code=${2-1} # default exit status 1 + msg "$msg" + exit "$code" +} + +parse_params() { + # default values of variables set from params + flag=0 + param='' + + while :; do + case "${1-}" in + -h | --help) usage ;; + -v | --verbose) set -x ;; + --no-color) NO_COLOR=1 ;; + # -f | --flag) flag=1 ;; # example flag + # -p | --param) # example named parameter + # param="${2-}" + # shift + # ;; + -?*) die "Unknown option: $1" ;; + *) break ;; + esac + shift + done + + args=("$@") + + # check required params and arguments + # [[ -z "${param-}" ]] && die "Missing required parameter: param" + [[ ${#args[@]} -eq 0 ]] && die "Missing TARGET" + [[ ${#args[@]} -ne 1 ]] && die "Can only deploy to one TARGET" + + return 0 +} + +parse_params "$@" +setup_colors + +# script logic here + +# msg "${RED}Read parameters:${NOFORMAT}" +# msg "- flag: ${flag}" +# msg "- param: ${param}" +# msg "- arguments: ${args[0]}" + +TARGET=${args[0]} +cd ${script_dir} +rm -rf public/ +hugo && rsync -avz --delete public/ ${TARGET} +cd -