[cmd_deploy][cmd_update][parser] Added --from option to define OLD_COMMIT

[parser] --git-dir option now expects no = in front of it
This commit is contained in:
ayakael 2018-04-15 22:58:41 -04:00
parent 5d199f8315
commit cfd00e3e2d
No known key found for this signature in database
GPG key ID: 575626A4AE5F4026
3 changed files with 43 additions and 18 deletions

View file

@ -6,13 +6,14 @@
# cmd_deploy - Command that deploys IMAGEIDs using deploy_imageid function # cmd_deploy - Command that deploys IMAGEIDs using deploy_imageid function
# #
# USAGE # USAGE
# cmd_deploy - </path/to/git/dir> </path/to/target> # cmd_deploy - </path/to/git/dir> </path/to/target> [<old git commit>]
# #
# } # }
cmd_deploy() { cmd_deploy() {
local GIT_DIR="${1}" local GIT_DIR="${1}"
local TARGET="${2}"; shift 2 local TARGET="${2}"
local OLD_COMMIT="${3}"
local ERR=false local ERR=false
local DB_FILE="${TARGET}/${_OPT_DB_FILE}" local DB_FILE="${TARGET}/${_OPT_DB_FILE}"
[[ ! -f "${DB_FILE}" ]] && return 3 [[ ! -f "${DB_FILE}" ]] && return 3
@ -23,7 +24,7 @@ cmd_deploy() {
fi fi
local NEW_COMMIT=$(git -C "${GIT_DIR}" rev-parse HEAD) local NEW_COMMIT=$(git -C "${GIT_DIR}" rev-parse HEAD)
local OLD_COMMIT=$(awk 'BEGIN{FS="\t"}{if($1=="LAST_DEPLOY"){print $2}}' ${DB_FILE}) [[ -z "${OLD_COMMIT}" ]] && local OLD_COMMIT=$(awk 'BEGIN{FS="\t"}{if($1=="LAST_DEPLOY"){print $2}}' ${DB_FILE})
local removableidList=($(awk 'BEGIN{FS="\t"}{if(($1=="null" || $1=="false") && $4!="null"){print $2"--"$3}}' "${DB_FILE}")) local removableidList=($(awk 'BEGIN{FS="\t"}{if(($1=="null" || $1=="false") && $4!="null"){print $2"--"$3}}' "${DB_FILE}"))
local deployableidList=($(awk 'BEGIN{FS="\t"}{if($1=="true" && $4=="null"){print $2}}' "${DB_FILE}" | awk '!seen[$0]++')) local deployableidList=($(awk 'BEGIN{FS="\t"}{if($1=="true" && $4=="null"){print $2}}' "${DB_FILE}" | awk '!seen[$0]++'))
local changedidList=($(sed 's/\(.*\)\..*/\1/' <<< $(git -C "${GIT_DIR}" diff --name-only ${NEW_COMMIT} ${OLD_COMMIT}) | awk '!seen[$0]++' | grep SHA256)) local changedidList=($(sed 's/\(.*\)\..*/\1/' <<< $(git -C "${GIT_DIR}" diff --name-only ${NEW_COMMIT} ${OLD_COMMIT}) | awk '!seen[$0]++' | grep SHA256))

View file

@ -6,13 +6,14 @@
# cmd_update - Updates database of TARGET from git HEAD to last commit hash. # cmd_update - Updates database of TARGET from git HEAD to last commit hash.
# #
# USAGE # USAGE
# cmd_update </path/to/git/dir> </path/to/target/dir> # cmd_update </path/to/git/dir> </path/to/target/dir> [<old git commit>]
# #
# } # }
cmd_update() { cmd_update() {
local GIT_DIR="${1}" local GIT_DIR="${1}"
local TARGET="${2}" local TARGET="${2}"
local OLD_COMMIT="${3}"
local DB_FILE="${TARGET}/${_OPT_DB_FILE}" local DB_FILE="${TARGET}/${_OPT_DB_FILE}"
[[ ! -f "${DB_FILE}" ]] && return 3 [[ ! -f "${DB_FILE}" ]] && return 3
[[ ! -d "${GIT_DIR}/.git" ]] && return 2 [[ ! -d "${GIT_DIR}/.git" ]] && return 2
@ -26,7 +27,7 @@ cmd_update() {
# Defines what imageids needs updating by determining what files has changed since last # Defines what imageids needs updating by determining what files has changed since last
# update via git diff --name-only. # update via git diff --name-only.
local NEW_COMMIT=$(git -C "${GIT_DIR}" rev-parse HEAD) local NEW_COMMIT=$(git -C "${GIT_DIR}" rev-parse HEAD)
local OLD_COMMIT=$(awk 'BEGIN{FS="\t"}{if($1=="LAST_UPDATE"){print $2}}' ${DB_FILE}) [[ -z "${OLD_COMMIT}" ]] && local OLD_COMMIT=$(awk 'BEGIN{FS="\t"}{if($1=="LAST_UPDATE"){print $2}}' ${DB_FILE})
local imageidList=($(sed 's/\(.*\)\..*/\1/' <<< $(git -C "${GIT_DIR}" diff --name-only ${NEW_COMMIT} ${OLD_COMMIT}) | awk '!seen[$0]++' | grep SHA256)) local imageidList=($(sed 's/\(.*\)\..*/\1/' <<< $(git -C "${GIT_DIR}" diff --name-only ${NEW_COMMIT} ${OLD_COMMIT}) | awk '!seen[$0]++' | grep SHA256))
local COUNT=1 local COUNT=1

View file

@ -7,7 +7,7 @@
GIT_DIR="./" GIT_DIR="./"
#Recursive argument parser #Recursive argument parser
while true; do while [[ -z "${1}" ]]; do
case ${1} in case ${1} in
--help) --help)
shift shift
@ -23,17 +23,11 @@ while true; do
;; ;;
--git-dir=*) --git-dir)
if [ -z "${1#*=}" ]; then shift
help GIT_DIR="${1}"
else shift
GIT_DIR="${1#*=}"
fi
;; ;;
*)
break
;;
esac esac
shift shift
@ -60,7 +54,21 @@ case "${1}" in
deploy) deploy)
shift shift
cmd_deploy "${GIT_DIR}" ${@} while [[ -n "${1}" ]]; do
case ${1} in
--from)
shift
OLD_COMMIT=${1}
shift
;;
*)
TARGET="${1}"
shift
;;
esac
done
cmd_deploy "${GIT_DIR}" "${TARGET}" "${OLD_COMMIT}"
EXIT=$? EXIT=$?
[[ ${EXIT} -eq 0 ]] && echo "Deployment completed successfully" [[ ${EXIT} -eq 0 ]] && echo "Deployment completed successfully"
[[ ${EXIT} -eq 1 ]] && echo "Deployment completed with errors" [[ ${EXIT} -eq 1 ]] && echo "Deployment completed with errors"
@ -70,7 +78,22 @@ case "${1}" in
update) update)
shift shift
cmd_update "${GIT_DIR}" ${@} while [[ -n "${1}" ]]; do
case ${1} in
--from)
shift
OLD_COMMIT=${1}
shift
;;
*)
TARGET="${1}"
shift
;;
esac
done
cmd_update "${GIT_DIR}" "${TATGET}" "${OLD_COMMIT}"
EXIT=$? EXIT=$?
[[ ${EXIT} -eq 0 ]] && echo "Update completed successfully" [[ ${EXIT} -eq 0 ]] && echo "Update completed successfully"
[[ ${EXIT} -eq 1 ]] && echo "Update completed with errors" [[ ${EXIT} -eq 1 ]] && echo "Update completed with errors"