summaryrefslogtreecommitdiff
path: root/etckeeper
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2014-09-04 13:53:42 -0400
committerJoey Hess <joey@kitenet.net>2014-09-04 13:53:42 -0400
commit1b70e83dddcafbcbea84fc55a6396e4876a9a0c4 (patch)
tree0332e952c763afe3a9f3bbab2e11b03fed7ded9d /etckeeper
parent0d7150577465bb7d5526d34a25a2e75dd6fc09e3 (diff)
Avoid propigating nonzero exit status of any command called by etckeeper out to the caller. This is to avoid making apt give up because git is misconfigured and cannot commit, or similar. Closes: #760011
I absoltely do not want etckeeper to dive into the rats nest of making git be able to commit reliably. git commit has about a dozen failure modes, and it's up to the admin to avoid breaking their system by not giving it a hostname, or writing a broken ~/.gitconfig, or not giving uid 0 a user name, etc. I considered making only apt.conf's etckeeper calls be guarded with || true, but this would also need to be done for the other package managers that can call etckeeper. And it's better to let etckeeper indicate which script failed, rather than seeing an error message and apt continuing without an indication of why git commit was being called then.
Diffstat (limited to 'etckeeper')
-rwxr-xr-xetckeeper5
1 files changed, 4 insertions, 1 deletions
diff --git a/etckeeper b/etckeeper
index 554ada9..bfd1070 100755
--- a/etckeeper
+++ b/etckeeper
@@ -126,5 +126,8 @@ lsscripts() {
}
for script in $(lsscripts "$ETCKEEPER_CONF_DIR/$command.d"); do
- "$script" "$@"
+ if ! "$script" "$@"; then
+ echo "etckeeper failed running $script" >&1
+ exit 0
+ fi
done