mirror of
https://github.com/rworkman/slackpkg
synced 2024-12-25 21:58:42 +01:00
Added the new-config actions for specific files
- Added code to parse a list with the .new files and the default action to do. - Added post-functions.conf file to hold the aforementioned list and possible future configurations. - Updated the SlackBuild to install the post-functions.conf file
This commit is contained in:
parent
3c4c175de8
commit
ab87149522
3 changed files with 41 additions and 4 deletions
14
files/post-functions.conf-sample
Normal file
14
files/post-functions.conf-sample
Normal file
|
@ -0,0 +1,14 @@
|
|||
# You can list here the .new files and the default action
|
||||
# to do for each file. The list format is:
|
||||
#
|
||||
# /full/path/of/dot/new/file.new:action
|
||||
#
|
||||
# The action can be:
|
||||
#
|
||||
# O to Overwrite it with the new version
|
||||
# R to Remove the new file
|
||||
# K to Keep the current and the .new files
|
||||
#
|
||||
# E.g:
|
||||
#/etc/slackpkg/mirrors.new:K
|
||||
#/etc/ntp.conf.new:R
|
|
@ -137,6 +137,12 @@ looknew() {
|
|||
ONLY_NEW_DOTNEW=""
|
||||
fi
|
||||
|
||||
# if there is a /etc/slackpkg/post-functions.conf file, it will be
|
||||
# used to take the pre-defined action to each file specified there.
|
||||
if [ -f /etc/slackpkg/post-functions.conf ]; then
|
||||
NEWCONFIG="/etc/slackpkg/post-functions.conf"
|
||||
fi
|
||||
|
||||
printf "%s\n" "Searching for NEW configuration files..."
|
||||
|
||||
FILES=$( find \
|
||||
|
@ -179,8 +185,8 @@ What do you want (K/O/R/P)?
|
|||
# No. of prompt etc. lines to print.
|
||||
TEXTLINES=$(( $( printf %b "$PROMPTTEXT" | wc -l ) + 3 ))
|
||||
|
||||
if [ $(( newcount + TEXTLINES )) -lt $ROWS ]; then
|
||||
# All files will fit on screen.
|
||||
if [ $(( newcount + TEXTLINES )) -lt $ROWS ] || [ "${BATCH}" = "on" ]; then
|
||||
# All files will fit on screen or is a batch execution.
|
||||
printf "%s\n" "$FILES"
|
||||
else
|
||||
# Won't all fit, so scroll a screenfull at a time.
|
||||
|
@ -240,6 +246,9 @@ EOF
|
|||
|
||||
printf %b "$PROMPTTEXT"
|
||||
answer
|
||||
if [ "${BATCH}" = "on" ] && [ -n "${NEWCONFIG}" ]; then
|
||||
ANSWER=P
|
||||
fi
|
||||
case $ANSWER in
|
||||
K|k)
|
||||
;;
|
||||
|
@ -256,11 +265,24 @@ EOF
|
|||
P|p)
|
||||
echo "Select what you want file-by-file"
|
||||
for i in $FILES; do
|
||||
if [ -n "${NEWCONFIG}" ]; then
|
||||
AUTOANSWER="$(sed -ne 's#^'$i':\([ORK]\)#\1#p' $NEWCONFIG 2>/dev/null)"
|
||||
fi
|
||||
GOEX=0
|
||||
while [ $GOEX -eq 0 ]; do
|
||||
echo
|
||||
showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge" "(V)imdiff"
|
||||
read ANSWER
|
||||
if [ -n "${AUTOANSWER}" ]; then
|
||||
ANSWER=$AUTOANSWER
|
||||
echo $ANSWER
|
||||
else
|
||||
if [ "${BATCH}" = "on" ]; then
|
||||
ANSWER=K
|
||||
echo $ANSWER
|
||||
else
|
||||
read ANSWER
|
||||
fi
|
||||
fi
|
||||
case $ANSWER in
|
||||
O|o)
|
||||
overold $i
|
||||
|
|
|
@ -55,7 +55,8 @@ chown root:root $PKG/usr/sbin/slackpkg
|
|||
|
||||
# Prepare /etc directory:
|
||||
mkdir -pv $PKG/etc/slackpkg
|
||||
cp -av blacklist.new slackpkg.conf.new $PKG/etc/slackpkg
|
||||
cp -av blacklist.new slackpkg.conf.new post-functions.conf-sample \
|
||||
$PKG/etc/slackpkg
|
||||
chmod 644 $PKG/etc/slackpkg/*
|
||||
chown root:root $PKG/etc/slackpkg/*
|
||||
mkdir -pv $PKG/etc/slackpkg/templates
|
||||
|
|
Loading…
Reference in a new issue