Rename git_pull to git_sync, update Readme file
This commit is contained in:
42
src/bin/git_sync.sh
Executable file
42
src/bin/git_sync.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# AUTHOR: Clemens Schwaighofer
|
||||
# DATE: 2025/6/27
|
||||
# DESC: fetch and merge from a remote repositry
|
||||
|
||||
REPOSITORY="$1";
|
||||
BRANCH="$2";
|
||||
REMOTE_NAME="$3";
|
||||
if [ -z "${REMOTE_NAME}" ]; then
|
||||
REMOTE_NAME="origin"
|
||||
fi;
|
||||
BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
|
||||
# shellcheck source=init.sh
|
||||
. "${BASE_FOLDER}init.sh";
|
||||
|
||||
# check that repository path exists
|
||||
GIT_REPOSITORY_FOLDER="${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}${REPOSITORY}";
|
||||
if [ ! -d "${GIT_REPOSITORY_FOLDER}" ]; then
|
||||
echo "[!] ${REPOSITORY} not found in clone folder";
|
||||
echo "[!] Full path: ${GIT_REPOSITORY_FOLDER}";
|
||||
exit;
|
||||
fi;
|
||||
LOG_FILE="${GIT_WEBHOOK_BASE_FOLDER}${LOG_FOLDER}${REPOSITORY}.log";
|
||||
|
||||
# fetch to null
|
||||
# ${GIT_COMMAND} -C "${REPOSITORY_PATH}" fetch -q "${REMOTE}" "${BRANCH}";
|
||||
GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "-C" "${GIT_REPOSITORY_FOLDER}" "fetch" "-q" "${REMOTE_NAME}" "${BRANCH}")
|
||||
"${GIT_COMMAND[@]}"
|
||||
# check diff
|
||||
GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "-C" "${GIT_REPOSITORY_FOLDER}" "diff" "--stat" "HEAD" "${REMOTE_NAME}/${BRANCH}")
|
||||
# changes=$(${GIT_COMMAND_BASE} -C "${REPOSITORY_PATH}" diff --stat HEAD "${REMOTE}"/"${BRANCH}");
|
||||
changes=$("${GIT_COMMAND[@]}" 2>&1)
|
||||
if [ -n "${changes}" ]; then
|
||||
echo "[$(date +"%Y-%m-%d %H:%M:%S")] Changes" &>> "$LOG_FILE";
|
||||
# ${GIT_COMMAND_BASE} -C "/${REPOSITORY_PATH}" merge "${REMOTE}"/"${BRANCH}"
|
||||
GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "-C" "${GIT_REPOSITORY_FOLDER}" merge "${REMOTE_NAME}/${BRANCH}")
|
||||
"${GIT_COMMAND[@]}" &>> "$LOG_FILE";
|
||||
echo "=[END]===>" &>> "$LOG_FILE";
|
||||
fi;
|
||||
|
||||
# __END__
|
||||
Reference in New Issue
Block a user