Compare commits

...

8 Commits

Author SHA1 Message Date
729778043a Removed syntactic errors. 2022-06-25 21:27:14 +02:00
31e1aad762 Removed the copy operation for the githooks aunder .githooks. 2022-06-25 21:26:20 +02:00
f8c091ad0c Add get_blob and get_commit_for_blob 2022-06-25 17:18:13 +02:00
e5e6c4c1cd Minor change: check_for_running_apism 2022-06-25 15:22:34 +02:00
95a9307631 check_for_apism, check_default_route and check_for_route_to_repository
exit the script if condition is not fulfilled.
2022-06-25 15:19:43 +02:00
fc1c2221b1 Added check_default_route and check_route_for_repository. 2022-06-25 15:11:49 +02:00
9b1549306d Added checks:
check_default_route -> exit if no route set
check_route_to_repository -> exit if no such route
check_for_apism
2022-06-25 15:08:44 +02:00
a8f691741b Added APISM running 2022-06-25 15:07:23 +02:00
4 changed files with 63 additions and 19 deletions

View File

@ -89,7 +89,8 @@ clone_customer_repository () {
# a "git pull" will automatically fetched files in the # a "git pull" will automatically fetched files in the
# corresponding sytem-folders. # corresponding sytem-folders.
if cd ${CUSTOMER_ID_BASE_DIR}; then if cd ${CUSTOMER_ID_BASE_DIR}; then
# local res=$(exec_git_command git --git-dir=.git --work-tree=/ init) # configure hooks directory
exec_git_command git config core.hooksPath .githooks
exec_git_command git checkout "$LOCAL_BRANCH" exec_git_command git checkout "$LOCAL_BRANCH"
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
log_debug "$func:${LINENO} checked out local branch $LOCAL_BRANCH" log_debug "$func:${LINENO} checked out local branch $LOCAL_BRANCH"
@ -102,11 +103,6 @@ clone_customer_repository () {
exec_git_command git reset --hard "$LOCAL_BRANCH" exec_git_command git reset --hard "$LOCAL_BRANCH"
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then
log_debug "$func:${LINENO} reset --hard $LOCAL_BRANCH" log_debug "$func:${LINENO} reset --hard $LOCAL_BRANCH"
# re-initialized. copy post-merge (a hook called
# when 'git pull' is executed and changed data
# are received).
if cp ".githooks/post-merge" ".git/hooks"; then
log_debug "$func:${LINENO} copied post-merge to .git/hooks"
CLONE_CUSTOMER_REPOSITORY=true CLONE_CUSTOMER_REPOSITORY=true
log_debug "$func:${LINENO} re-init of ${1} done" log_debug "$func:${LINENO} re-init of ${1} done"
cd_home; return 0 cd_home; return 0
@ -116,7 +112,6 @@ clone_customer_repository () {
fi fi
fi fi
fi fi
fi
cd_home; return 1 cd_home; return 1
fi fi
else else
@ -224,4 +219,20 @@ changed_file_names () {
"while in $PWD" "while in $PWD"
fi fi
} }
# fi
get_blob () { # get the blob of the file(name) passed as $1
# note: this can be used for any file in the filesystem
echo $(git hash-object $1)
}
get_commit_for_blob () {
blob=$(get_blob $1)
if [ ! -z $blob ]; then
# search for the blob in all commits for the file(name) $1
echo $(echo $(git log --all --pretty=format:%H -- $1) |
xargs -I{} sh -c "git ls-tree {} -- $1 |
grep -q $blob && echo {}")
fi
}

View File

@ -28,11 +28,12 @@ if [ ${read_config_sourced:-1} = "1" ]; then # include only once
readonly PROGRAM=`basename $0` readonly PROGRAM=`basename $0`
readonly WORKSPACE_DIR=workspace readonly WORKSPACE_DIR=workspace
GIT_CLONE_EXECUTED=0
EXITCODE=$RC_SUCCESS EXITCODE=$RC_SUCCESS
CLONE_CUSTOMER_REPOSITORY=false CLONE_CUSTOMER_REPOSITORY=false
GIT_CLONE_EXECUTED=0
APISM_RUNNING=0
# read config file (JSON syntax) # read config file (JSON syntax)
read_config() { read_config() {
local func="${FUNCNAME[0]}" local func="${FUNCNAME[0]}"

View File

@ -64,6 +64,9 @@ if cd "$WORKING_DIRECTORY"; then
if read_config if read_config
then then
check_default_route
check_route_to_repository "185.191.219.134" # git.mimbach.de
check_for_running_apism
if clone_customer_repository ${CUSTOMER_REPOSITORY_PATH} if clone_customer_repository ${CUSTOMER_REPOSITORY_PATH}
then then
check_sanity_of_repository check_sanity_of_repository

View File

@ -373,8 +373,37 @@ cleanup_previous_version() {
return 0 return 0
} }
check_for_apism () { check_for_running_apism () {
nc localhost 7778 local func="${FUNCNAME[0]}"
if nc localhost 7778
then
APISM_RUNNING=1
log_debug "$func:${LINENO}: APISM running..."
return 0
fi
log_fatal "$func:${LINENO}: !!! APISM NOT RUNNING !!!"
}
check_default_route () {
local func="${FUNCNAME[0]}"
if ip route | head -n 1 | grep -q '^default'
then
log_debug "$func:${LINENO}: default route set"
return 0
fi
log_fatal "$func:${LINENO}: !!! NO DEFAULT ROUTE SET !!!"
}
check_route_to_repository () {
local func="${FUNCNAME[0]}"
# ip_address=$1, e.g. git.mimbach.de (185.191.219.134)
# 185.191.219.134 via 192.168.5.254 ...
if test "$#" -eq 1 && ip route get "$1" | head -n 1 | grep -q "^$1"
then
log_debug "$func:${LINENO}: route to repository available"
return 0
fi
log_fatal "$func:${LINENO}: !!! NO ROUTE TO REPO SET !!!"
} }
get_customer_id () { get_customer_id () {