From 5db7670623c2551c5cc1f6dc8ce02543b06cf671 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 4 Sep 2014 15:43:19 -0400 Subject: Use debconf for prompting when post-install commit fails, as was already done for pre-install commit. This avoids propigating errors to apt when eg, git is misconfigured and cannot commit. Closes: #760011 --- post-install.d/50vcs-commit | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'post-install.d/50vcs-commit') diff --git a/post-install.d/50vcs-commit b/post-install.d/50vcs-commit index 7710c4a..edd3444 100755 --- a/post-install.d/50vcs-commit +++ b/post-install.d/50vcs-commit @@ -1,11 +1,22 @@ #!/bin/sh set -e + +if [ "$1" = "fail-debconf" ]; then + . /usr/share/debconf/confmodule + db_title etckeeper + db_subst etckeeper/commit_failed VCS "$VCS" + db_input critical etckeeper/commit_failed || true + db_go || true + db_reset etckeeper/commit_failed || true + exit 0 +fi pl="/var/cache/etckeeper/packagelist" if etckeeper unclean; then message="committing changes in /etc after $HIGHLEVEL_PACKAGE_MANAGER run" + set +e if [ -e $pl.pre-install ]; then ( echo "$message" @@ -16,6 +27,17 @@ if etckeeper unclean; then else etckeeper commit "$(printf "$message")" fi + status=$? + set -e + + if [ "$status" != 0 ]; then + if [ -e /usr/share/debconf/confmodule ]; then + $0 fail-debconf + else + echo "error: etckeeper failed to commit changes in /etc using $VCS" + exit 1 + fi + fi fi if [ -e $pl.pre-install ]; then -- cgit v1.2.3