From fdeec420b54e252e611c353ce39fe61c924e3e7d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 31 Jul 2013 11:33:45 -0400 Subject: etckeeper (1.7) unstable; urgency=low * Fix hilarious typo hardcoding my name. Closes: #718425 # imported from the archive --- commit.d/10vcs-test | 17 ++++++++ commit.d/30bzr-add | 8 ++++ commit.d/30darcs-add | 14 +++++++ commit.d/30git-add | 8 ++++ commit.d/30hg-addremove | 8 ++++ commit.d/50vcs-commit | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ commit.d/99push | 8 ++++ commit.d/README | 3 ++ 8 files changed, 170 insertions(+) create mode 100755 commit.d/10vcs-test create mode 100755 commit.d/30bzr-add create mode 100755 commit.d/30darcs-add create mode 100755 commit.d/30git-add create mode 100755 commit.d/30hg-addremove create mode 100755 commit.d/50vcs-commit create mode 100755 commit.d/99push create mode 100644 commit.d/README (limited to 'commit.d') diff --git a/commit.d/10vcs-test b/commit.d/10vcs-test new file mode 100755 index 0000000..e33d734 --- /dev/null +++ b/commit.d/10vcs-test @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +not_enabled_warning() { + echo "etckeeper warning: etckeeper is not yet enabled for $(pwd)" >&2 + echo "etckeeper warning: run etckeeper init to enable it" >&2 +} + +if [ "$VCS" = git ] && [ ! -d .git ]; then + not_enabled_warning +elif [ "$VCS" = hg ] && [ ! -d .hg ]; then + not_enabled_warning +elif [ "$VCS" = bzr ] && [ ! -d .bzr ]; then + not_enabled_warning +elif [ "$VCS" = darcs ] && [ ! -d _darcs ]; then + not_enabled_warning +fi diff --git a/commit.d/30bzr-add b/commit.d/30bzr-add new file mode 100755 index 0000000..3e7e95d --- /dev/null +++ b/commit.d/30bzr-add @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +if [ "$VCS" = bzr ] && [ -d .bzr ]; then + if ! bzr add -q .; then + echo "etckeeper warning: bzr add failed" >&2 + fi +fi diff --git a/commit.d/30darcs-add b/commit.d/30darcs-add new file mode 100755 index 0000000..98be4bf --- /dev/null +++ b/commit.d/30darcs-add @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +if [ "$VCS" = darcs ] && [ -d _darcs ]; then + rc=0 + res=$( darcs add -qr . 2>&1 ) || rc=$? + if test $rc -ne 0; then + if ! test $rc -eq 2 -a "${res%No files were added}" != "$res"; then + printf "%s" "$res" + echo "etckeeper warning: darcs add failed" >&2 + fi + fi + unset rc res +fi diff --git a/commit.d/30git-add b/commit.d/30git-add new file mode 100755 index 0000000..b08b583 --- /dev/null +++ b/commit.d/30git-add @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +if [ "$VCS" = git ] && [ -d .git ]; then + if ! git add --all; then + echo "etckeeper warning: git add --all" >&2 + fi +fi diff --git a/commit.d/30hg-addremove b/commit.d/30hg-addremove new file mode 100755 index 0000000..1b999bb --- /dev/null +++ b/commit.d/30hg-addremove @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +if [ "$VCS" = hg ] && [ -d .hg ]; then + if ! hg addremove .; then + echo "etckeeper warning: hg addremove failed" >&2 + fi +fi diff --git a/commit.d/50vcs-commit b/commit.d/50vcs-commit new file mode 100755 index 0000000..3a4c819 --- /dev/null +++ b/commit.d/50vcs-commit @@ -0,0 +1,104 @@ +#!/bin/sh +set -e + +cleanup () { + if [ -n "$logfile" ]; then + rm -f "$logfile" + fi +} +if [ -n "$1" ]; then + trap cleanup EXIT + logfile="$(mktemp -t etckeeper-$VCS.XXXXXXXXXX)" + if [ "x$1" = "x--stdin" ]; then + cat > "$logfile" + else + if [ "x$1" = "x-m" ]; then + shift 1 + fi + echo "$1" > "$logfile" + fi +else + logfile="" +fi + +hostname=`hostname` +hostname="${hostname%%.*}" +dnsdomainname=`dnsdomainname 2>/dev/null || true` +if [ -n "$dnsdomainname" ]; then + hostname="$hostname.$dnsdomainname" +fi + +USER= +if [ -n "$SUDO_USER" ]; then + USER="$SUDO_USER" +else + # try to check tty ownership, in case user su'd to root + TTY="$(tty 2>/dev/null || true)" + if [ -n "$TTY" ] && [ -c "$TTY" ]; then + USER="$(find "$TTY" -printf "%u")" + fi +fi + +if [ "$VCS" = git ] && [ -d .git ]; then + if [ -n "$USER" ]; then + # Use user.name and user.email from the gitconfig belonging + # to the user who became root. + USER_HOME="$(perl -e 'print ((getpwnam(shift()))[7])' "$USER")" + if [ -n "$USER_HOME" ] && [ -e "$USER_HOME/.gitconfig" ]; then + if [ -z "$GIT_AUTHOR_NAME" ]; then + GIT_AUTHOR_NAME="$(git config -f "$USER_HOME/.gitconfig" user.name)" || true + fi + if [ -z "$GIT_AUTHOR_EMAIL" ]; then + GIT_AUTHOR_EMAIL="$(git config -f "$USER_HOME/.gitconfig" user.email)" || true + fi + fi + if [ -z "$GIT_COMMITTER_EMAIL" ]; then + GIT_COMMITER_EMAIL="$(git config --global user.email)" || true + fi + + if [ -z "$GIT_AUTHOR_NAME" ]; then + export GIT_AUTHOR_NAME="$USER" + fi + if [ -z "$GIT_AUTHOR_EMAIL" ]; then + export GIT_AUTHOR_EMAIL="$USER@$hostname" + fi + if [ -z "$GIT_COMMITTER_EMAIL" ]; then + export GIT_COMMITTER_EMAIL=`whoami`"@$hostname" + fi + fi + if [ -n "$logfile" ]; then + git commit $GIT_COMMIT_OPTIONS -F "$logfile" + else + git commit $GIT_COMMIT_OPTIONS + fi +elif [ "$VCS" = hg ] && [ -d .hg ]; then + if [ -n "$USER" ]; then + export LOGNAME="$USER" + fi + if [ -z "$HGUSER" ]; then + export HGUSER="$USER@$hostname" + fi + if [ -n "$logfile" ]; then + hg commit $HG_COMMIT_OPTIONS -l "$logfile" + else + hg commit $HG_COMMIT_OPTIONS + fi +elif [ "$VCS" = bzr ] && [ -d .bzr ]; then + if [ -z "$EMAIL" ] && [ -n "$USER" ]; then + export EMAIL="$USER <$USER@$hostname>" + fi + if [ -n "$logfile" ]; then + bzr commit $BZR_COMMIT_OPTIONS -F "$logfile" + else + bzr commit $BZR_COMMIT_OPTIONS + fi +elif [ "$VCS" = darcs ] && [ -d _darcs ]; then + if [ -z "$USER" ]; then + USER=root + fi + if [ -n "$logfile" ]; then + darcs record --author="$USER" $DARCS_COMMIT_OPTIONS --logfile="$logfile" + else + darcs record --author="$USER" $DARCS_COMMIT_OPTIONS + fi +fi diff --git a/commit.d/99push b/commit.d/99push new file mode 100755 index 0000000..9a5d81e --- /dev/null +++ b/commit.d/99push @@ -0,0 +1,8 @@ +#!/bin/sh +if [ -n "$PUSH_REMOTE" ]; then + if [ "$VCS" = git ] && [ -d .git ]; then + git push "$PUSH_REMOTE" master || true + else + echo "PUSH_REMOTE not yet supported for $VCS" >&2 + fi +fi diff --git a/commit.d/README b/commit.d/README new file mode 100644 index 0000000..25d0d45 --- /dev/null +++ b/commit.d/README @@ -0,0 +1,3 @@ +Files in this directory are run when there might be changes to commit. +(Before and after packages are installed, upgraded, etc.) +They should commit changes and new files in /etc to repository. -- cgit v1.2.3