%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /etc/etckeeper/post-install.d/
Upload File :
Create Path :
Current File : //etc/etckeeper/post-install.d/50vcs-commit

#!/bin/sh
set -e

pl="/var/cache/etckeeper/packagelist"

# Parent process is etckeeper
# (Only procps ps is currently supported, others will fail,
# so this may end up empty.)
ETCKEEPER_PID=$( ps --no-headers -o ppid "${PPID}" 2>/dev/null | sed 's/^ *//' )

# Find the parent of etckeeper and get the command line of the process
if ! [ -z "${ETCKEEPER_PID}" ]; then
	ETCKEEPER_PPID=$( ps --no-headers -o ppid "${ETCKEEPER_PID}" | sed 's/^ *//' )
	ETCKEEPER_PARENT_COMMAND_LINE=$( ps --no-headers -o args "${ETCKEEPER_PPID}" )
fi

if etckeeper unclean; then
	if [ -z "${ETCKEEPER_PARENT_COMMAND_LINE}" ]; then
		message="committing changes in /etc after $HIGHLEVEL_PACKAGE_MANAGER run"
	else
		message="committing changes in /etc made by \"$ETCKEEPER_PARENT_COMMAND_LINE\""
	fi

	set +e
	if [ -e $pl.pre-install ] && [ "$(cat $pl.fmt 2>/dev/null || true)" = "$(etckeeper list-installed fmt)" ]; then
		(
			echo "$message"
			echo
			echo "Package changes:"
			etckeeper list-installed | diff -U0 $pl.pre-install - | tail -n+4 | egrep '^[-+]' || true
		) | etckeeper commit --stdin
	else
		etckeeper commit "$(printf "$message")"
	fi
	status=$?
	set -e

	if [ "$status" != 0 ]; then
		echo "warning: etckeeper failed to commit changes in /etc using $VCS" >&2
	fi
fi

rm -f $pl.pre-install $pl.fmt

Zerion Mini Shell 1.0