From 25d7f786bc6310046f3132684e5061d46e709dba Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Thu, 6 Sep 2018 10:46:50 +0200 Subject: [PATCH] Git must know the GIT_DIR and the GIT_WORK_TREE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … otherwise it looks for content in the current working directory (where the script is executed from) which is catastrophic for the repository. --- evomaintenance.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/evomaintenance.sh b/evomaintenance.sh index 95b2e39..5071141 100644 --- a/evomaintenance.sh +++ b/evomaintenance.sh @@ -55,22 +55,22 @@ echo "${BLOB}" >> "${LOGFILE}" GIT_BIN=$(command -v git) if test -x "${GIT_BIN}"; then - # loop on possible GIT repositories - for dir in /etc/.git /etc/bind/.git; do - # tell Git where to find the repository (no need to `cd …` there) - export GIT_DIR="${dir}" - # If the repository exists, try to commit changes - if test -d "${GIT_DIR}"; then - ${GIT_BIN} add . - ${GIT_BIN} commit --all --message "${TEXTE}" --author="${USER} <${USER}@evolix.net>" --quiet + # loop on possible directories managed by GIT + for dir in /etc /etc/bind; do + # tell Git where to find the repository and the work tree (no need to `cd …` there) + export GIT_DIR="${dir}/.git" GIT_WORK_TREE="${dir}" + # If the repository and the work tree exist, try to commit changes + if test -d "${GIT_DIR}" && test -d "${GIT_WORK_TREE}"; then + ${GIT_BIN} add --all + ${GIT_BIN} commit --message "${TEXTE}" --author="${USER} <${USER}@evolix.net>" --quiet # Add the SHA to the log file if something has been committed if [ "$?" = "0" ]; then - SHA=$(git rev-parse --short HEAD) - echo "${GIT_DIR} : ${SHA}" >> "${LOGFILE}" + SHA=$(git rev-parse HEAD) + echo "${dir} : ${SHA}" >> "${LOGFILE}" fi fi - - unset GIT_DIR + # unset environment variables to prevent accidental influence on other git commands + unset GIT_DIR GIT_WORK_TREE done fi