#!/bin/sh EDITOR=${EDITOR:-vi} command -v $EDITOR >/dev/null || { echo "Editor '$EDITOR' not exist. Append 'EDITOR=' to ${0##*/}." exit 2 } [ "$(id -u)" = 0 ] || { echo "This operation need root access. Exiting..." exit 1 } pkgnew=$(find /etc -type f -name "*.new" 2> /dev/null) [ "$pkgnew" ] || { echo "Nothing to do. Exiting..." exit 0 } for file in $pkgnew; do currentfile=${file%.*} if [ ! -e "$currentfile" ]; then echo "Remove '$file', '$currentfile' not exist." rm -f "$file" sleep 0.5 continue fi while true; do clear diff -u $currentfile $file #--color=always if [ $? = 0 ]; then echo "Remove '$file', no diff found." rm -f "$file" sleep 1 break fi echo echo "File: $currentfile" echo printf "[U]pdate [D]iscard [E]dit [K]eep ?: " read ACTION echo case $ACTION in U|u) echo "Replace '$currentfile' with '$file'." mv -f "$file" "$currentfile" break;; D|d) echo "Remove '$file'." rm -f "$file" break;; E|e) vim "$currentfile";; K|k) echo "Keeping both." break;; esac done sleep 0.5 done clear echo "Done updating package's configuration files." exit 0