Files
GitHub.webhook-scripts/bin/git_pull.sh
2025-07-04 10:14:33 +09:00

41 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# AUTHOR: Clemens Schwaighofer
# DATE: 2025/6/27
# DESC: fetch and merge from a remote repositry
REPOSITORY="$1";
BRANCH="$2";
REMOTE="$3";
if [ -n "${REMOTE}" ]; then
REMOTE="origin"
fi;
BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
# shellcheck source=init.sh
. "${BASE_FOLDER}init.sh";
# check that repository path exists
REPOSITORY_PATH="${GIT_REPOSITORY_FOLDER}${CLONE_BASE}${REPOSITORY}";
if [ ! -d "${REPOSITORY_PATH}$" ]; then
echo "${REPOSITORY} not found in clone folder";
exit;
fi;
LOG_FILE="${GIT_REPOSITORY_FOLDER}${LOG_FOLDER}${REPOSITORY}.log";
# fetch to null
# ${GIT_COMMAND} -C "${REPOSITORY_PATH}" fetch -q "${REMOTE}" "${BRANCH}";
GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "-C" "${REPOSITORY_PATH}" "fetch" "-q" "${REMOTE}" "${BRANCH}")
"${GIT_COMMAND[@]}"
GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "-C" "${REPOSITORY_PATH}" "diff" "--stat" "HEAD" "${REMOTE}/${BRANCH}")
# changes=$(${GIT_COMMAND_BASE} -C "${REPOSITORY_PATH}" diff --stat HEAD "${REMOTE}"/"${BRANCH}");
changes=$("${GIT_COMMAND[@]}")
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" "${REPOSITORY_PATH}" merge "${REMOTE}/${BRANCH}")
"${GIT_COMMAND[@]}" &>> "$LOG_FILE";
echo "=[END]===>" &>> "$LOG_FILE";
fi;
# __END__