Improve "dry run" mode
Hooks are executed, but they show the actions instead of doing them.
This commit is contained in:
parent
463555475b
commit
293c38fb83
|
@ -98,20 +98,29 @@ hook_commit() {
|
||||||
if test -d "${GIT_DIR}" && test -d "${GIT_WORK_TREE}"; then
|
if test -d "${GIT_DIR}" && test -d "${GIT_WORK_TREE}"; then
|
||||||
CHANGED_LINES=$(${GIT_BIN} status --porcelain | wc -l | tr -d ' ')
|
CHANGED_LINES=$(${GIT_BIN} status --porcelain | wc -l | tr -d ' ')
|
||||||
if [ "${CHANGED_LINES}" != "0" ]; then
|
if [ "${CHANGED_LINES}" != "0" ]; then
|
||||||
${GIT_BIN} add --all
|
if [ "${DRY_RUN}" = "1" ]; then
|
||||||
${GIT_BIN} commit --message "${TEXTE}" --author="${USER} <${USER}@evolix.net>" --quiet
|
STATS=$(${GIT_BIN} diff --stat | tail -1)
|
||||||
# Add the SHA to the log file if something has been committed
|
GIT_COMMITS=$(printf "%s\n%s : %s" "${GIT_COMMITS}" "${GIT_DIR}" "${STATS}" | sed -e '/^$/d')
|
||||||
SHA=$(${GIT_BIN} rev-parse --short HEAD)
|
else
|
||||||
STATS=$(${GIT_BIN} show --stat | tail -1)
|
${GIT_BIN} add --all
|
||||||
# append commit data, without empty lines
|
${GIT_BIN} commit --message "${TEXTE}" --author="${USER} <${USER}@evolix.net>" --quiet
|
||||||
GIT_COMMITS=$(printf "%s\n%s : %s –%s" "${GIT_COMMITS}" "${GIT_DIR}" "${SHA}" "${STATS}" | sed -e '/^$/d')
|
# Add the SHA to the log file if something has been committed
|
||||||
|
SHA=$(${GIT_BIN} rev-parse --short HEAD)
|
||||||
|
STATS=$(${GIT_BIN} show --stat | tail -1)
|
||||||
|
# append commit data, without empty lines
|
||||||
|
GIT_COMMITS=$(printf "%s\n%s : %s –%s" "${GIT_COMMITS}" "${GIT_DIR}" "${SHA}" "${STATS}" | sed -e '/^$/d')
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# unset environment variables to prevent accidental influence on other git commands
|
# unset environment variables to prevent accidental influence on other git commands
|
||||||
unset GIT_DIR GIT_WORK_TREE
|
unset GIT_DIR GIT_WORK_TREE
|
||||||
done
|
done
|
||||||
if [ -n "${GIT_COMMITS}" ]; then
|
if [ -n "${GIT_COMMITS}" ]; then
|
||||||
echo "${GIT_COMMITS}" >> "${LOGFILE}"
|
if [ "${DRY_RUN}" = "1" ]; then
|
||||||
|
echo "\n\n********** Commits ****************\n${GIT_COMMITS}\n***********************************"
|
||||||
|
else
|
||||||
|
echo "${GIT_COMMITS}" >> "${LOGFILE}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -119,18 +128,26 @@ hook_commit() {
|
||||||
hook_db() {
|
hook_db() {
|
||||||
# SQL_TEXTE=`echo "${TEXTE}" | sed "s/'/\\\\\\'/g ; s@/@\\\\\/@g ; s@\\&@et@g"`
|
# SQL_TEXTE=`echo "${TEXTE}" | sed "s/'/\\\\\\'/g ; s@/@\\\\\/@g ; s@\\&@et@g"`
|
||||||
SQL_TEXTE=$(echo "${TEXTE}" | sed "s/'/''/g")
|
SQL_TEXTE=$(echo "${TEXTE}" | sed "s/'/''/g")
|
||||||
|
|
||||||
PG_QUERY="INSERT INTO evomaint(hostname,userid,ipaddress,begin_date,end_date,details) VALUES ('${HOSTNAME}','${USER}','${IP}','${BEGIN_DATE}',now(),'${SQL_TEXTE}')"
|
PG_QUERY="INSERT INTO evomaint(hostname,userid,ipaddress,begin_date,end_date,details) VALUES ('${HOSTNAME}','${USER}','${IP}','${BEGIN_DATE}',now(),'${SQL_TEXTE}')"
|
||||||
echo "${PG_QUERY}" | psql ${PGDB} ${PGTABLE} -h ${PGHOST}
|
|
||||||
|
if [ "${DRY_RUN}" = "1" ]; then
|
||||||
|
echo "\n\n********** DB query **************\n${PG_QUERY}\n***********************************"
|
||||||
|
else
|
||||||
|
echo "${PG_QUERY}" | psql ${PGDB} ${PGTABLE} -h ${PGHOST}
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
hook_mail() {
|
hook_mail() {
|
||||||
MAIL_TEXTE=$(echo "${TEXTE}" | sed -e "s@/@\\\\\/@g ; s@&@\\\\&@")
|
MAIL_TEXTE=$(echo "${TEXTE}" | sed -e "s@/@\\\\\/@g ; s@&@\\\\&@")
|
||||||
MAIL_GIT_COMMITS=$(echo "${GIT_COMMITS}" | sed -e "s@/@\\\\\/@g ; s@&@\\\\&@")
|
MAIL_GIT_COMMITS=$(echo "${GIT_COMMITS}" | sed -e "s@/@\\\\\/@g ; s@&@\\\\&@")
|
||||||
|
MAIL_CONTENT=$(cat /usr/share/scripts/evomaintenance.tpl | \
|
||||||
|
sed -e "s/__TO__/${EVOMAINTMAIL}/ ; s/__HOSTNAME__/${HOSTNAME_TEXT}/ ; s/__USER__/${USER}/ ; s/__BEGIN_DATE__/${BEGIN_DATE}/ ; s/__END_DATE__/${END_DATE}/ ; s/__GIT_COMMITS__/${MAIL_GIT_COMMITS}/ ; s/__TEXTE__/${MAIL_TEXTE}/ ; s/__IP__/${IP}/ ; s/__FULLFROM__/${FULLFROM}/ ; s/__FROM__/${FROM}/ ; s/__URGENCYFROM__/${URGENCYFROM}/ ; s/__URGENCYTEL__/${URGENCYTEL}/")
|
||||||
|
|
||||||
cat /usr/share/scripts/evomaintenance.tpl | \
|
if [ "${DRY_RUN}" = "1" ]; then
|
||||||
sed -e "s/__TO__/${EVOMAINTMAIL}/ ; s/__HOSTNAME__/${HOSTNAME_TEXT}/ ; s/__USER__/${USER}/ ; s/__BEGIN_DATE__/${BEGIN_DATE}/ ; s/__END_DATE__/${END_DATE}/ ; s/__GIT_COMMITS__/${MAIL_GIT_COMMITS}/ ; s/__TEXTE__/${MAIL_TEXTE}/ ; s/__IP__/${IP}/ ; s/__FULLFROM__/${FULLFROM}/ ; s/__FROM__/${FROM}/ ; s/__URGENCYFROM__/${URGENCYFROM}/ ; s/__URGENCYTEL__/${URGENCYTEL}/" | \
|
echo "\n\n********** Mail *******************\n${MAIL_CONTENT}\n***********************************"
|
||||||
${SENDMAIL_BIN} -oi -t -f ${FROM}
|
else
|
||||||
|
echo "${MAIL_CONTENT}" | ${SENDMAIL_BIN} -oi -t -f ${FROM}
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
test -f /etc/evomaintenance.cf && . /etc/evomaintenance.cf
|
test -f /etc/evomaintenance.cf && . /etc/evomaintenance.cf
|
||||||
|
@ -254,24 +271,18 @@ echo "> Press <Enter> to submit, or <Ctrl+c> to cancel."
|
||||||
read enter
|
read enter
|
||||||
|
|
||||||
# write log
|
# write log
|
||||||
echo "----------- $(get_now) ---------------" >> "${LOGFILE}"
|
|
||||||
echo "${BLOB}" >> "${LOGFILE}"
|
|
||||||
|
|
||||||
if [ "${DRY_RUN}" = "1" ]; then
|
if [ "${DRY_RUN}" = "1" ]; then
|
||||||
echo
|
echo "\n\n********** Log ********************\n${BLOB}\n***********************************"
|
||||||
echo "[DRY-RUN] Options:"
|
|
||||||
echo "OPT_COMMIT: ${OPT_COMMIT}"
|
|
||||||
echo "OPT_DB: ${OPT_DB}"
|
|
||||||
echo "OPT_MAIL: ${OPT_MAIL}"
|
|
||||||
|
|
||||||
exit 2
|
|
||||||
else
|
else
|
||||||
# git commit
|
echo "----------- $(get_now) ---------------" >> "${LOGFILE}"
|
||||||
[ "${OPT_COMMIT}" = "1" ] && hook_commit
|
echo "${BLOB}" >> "${LOGFILE}"
|
||||||
# insert into PG
|
|
||||||
[ "${OPT_DB}" = "1" ] && hook_db
|
|
||||||
# send mail
|
|
||||||
[ "${OPT_MAIL}" = "1" ] && hook_mail
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Hooks
|
||||||
|
# git commit
|
||||||
|
[ "${OPT_COMMIT}" = "1" ] && hook_commit
|
||||||
|
# insert into PG
|
||||||
|
[ "${OPT_DB}" = "1" ] && hook_db
|
||||||
|
# send mail
|
||||||
|
[ "${OPT_MAIL}" = "1" ] && hook_mail
|
||||||
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue