My configuration and packages for Slackware
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
1.9 KiB

looknew() {
# with ONLY_NEW_DOTNEW set, slackpkg will search only for
# .new files installed in actual slackpkg's execution
if [ "$ONLY_NEW_DOTNEW" = "on" ]; then
ONLY_NEW_DOTNEW="-cnewer $TMPDIR/timestamp"
else
ONLY_NEW_DOTNEW=""
fi
echo -e "\nSearching for NEW configuration files"
FILES=""
find /var/log/packages -maxdepth 1 -type f ${ONLY_NEW_DOTNEW} | xargs sed -n -e '/^FILE LIST:$/,/^$/p' | fgrep -xv 'FILE LIST:' > $TMPDIR/allfiles
local IFS=$'\n'
for f in $(grep '\.new$' $TMPDIR/allfiles | sed -e 's/\.new$//'); do
x=$f.new
if [ -f "/$f" -a -f "/$x" ]; then
if ! fgrep -x "$f" $TMPDIR/allfiles 1> /dev/null 2>&1; then
FILES+="/$x
"
fi
fi
done
if [ "$FILES" != "" ]; then
echo -e "\n\
Some packages had new configuration files installed.
You have four choices:
(K)eep the old files and consider .new files later
(O)verwrite all old files with the new ones. The
old files will be stored with the suffix .orig
(R)emove all .new files
(P)rompt K, O, R selection for every single file
What do you want (K/O/R/P)?"
answer
case $ANSWER in
K|k)
break
;;
O|o)
for i in $FILES; do
overold $i
done
break
;;
R|r)
for i in $FILES; do
removeold $i
done
break
;;
P|p)
echo "Select what you want file-by-file"
for i in $FILES; do
GOEX=0
while [ $GOEX -eq 0 ]; do
echo
showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge"
read ANSWER
case $ANSWER in
O|o)
overold $i
GOEX=1
;;
R|r)
removeold $i
GOEX=1
;;
D|d)
showdiff $1
;;
M|m)
mergenew $1
;;
K|k|*)
GOEX=1
;;
esac
done
done
break
;;
*)
echo "OK! Your choice is nothing! slackpkg will Keep the old files for you to deal with later"
;;
esac
else
echo -e "\t\tNo .new files found."
fi
}