mirror of
https://github.com/rworkman/slackpkg
synced 2024-12-26 21:58:27 +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=""
|
ONLY_NEW_DOTNEW=""
|
||||||
fi
|
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..."
|
printf "%s\n" "Searching for NEW configuration files..."
|
||||||
|
|
||||||
FILES=$( find \
|
FILES=$( find \
|
||||||
|
@ -179,8 +185,8 @@ What do you want (K/O/R/P)?
|
||||||
# No. of prompt etc. lines to print.
|
# No. of prompt etc. lines to print.
|
||||||
TEXTLINES=$(( $( printf %b "$PROMPTTEXT" | wc -l ) + 3 ))
|
TEXTLINES=$(( $( printf %b "$PROMPTTEXT" | wc -l ) + 3 ))
|
||||||
|
|
||||||
if [ $(( newcount + TEXTLINES )) -lt $ROWS ]; then
|
if [ $(( newcount + TEXTLINES )) -lt $ROWS ] || [ "${BATCH}" = "on" ]; then
|
||||||
# All files will fit on screen.
|
# All files will fit on screen or is a batch execution.
|
||||||
printf "%s\n" "$FILES"
|
printf "%s\n" "$FILES"
|
||||||
else
|
else
|
||||||
# Won't all fit, so scroll a screenfull at a time.
|
# Won't all fit, so scroll a screenfull at a time.
|
||||||
|
@ -240,6 +246,9 @@ EOF
|
||||||
|
|
||||||
printf %b "$PROMPTTEXT"
|
printf %b "$PROMPTTEXT"
|
||||||
answer
|
answer
|
||||||
|
if [ "${BATCH}" = "on" ] && [ -n "${NEWCONFIG}" ]; then
|
||||||
|
ANSWER=P
|
||||||
|
fi
|
||||||
case $ANSWER in
|
case $ANSWER in
|
||||||
K|k)
|
K|k)
|
||||||
;;
|
;;
|
||||||
|
@ -256,11 +265,24 @@ EOF
|
||||||
P|p)
|
P|p)
|
||||||
echo "Select what you want file-by-file"
|
echo "Select what you want file-by-file"
|
||||||
for i in $FILES; do
|
for i in $FILES; do
|
||||||
|
if [ -n "${NEWCONFIG}" ]; then
|
||||||
|
AUTOANSWER="$(sed -ne 's#^'$i':\([ORK]\)#\1#p' $NEWCONFIG 2>/dev/null)"
|
||||||
|
fi
|
||||||
GOEX=0
|
GOEX=0
|
||||||
while [ $GOEX -eq 0 ]; do
|
while [ $GOEX -eq 0 ]; do
|
||||||
echo
|
echo
|
||||||
showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge" "(V)imdiff"
|
showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge" "(V)imdiff"
|
||||||
|
if [ -n "${AUTOANSWER}" ]; then
|
||||||
|
ANSWER=$AUTOANSWER
|
||||||
|
echo $ANSWER
|
||||||
|
else
|
||||||
|
if [ "${BATCH}" = "on" ]; then
|
||||||
|
ANSWER=K
|
||||||
|
echo $ANSWER
|
||||||
|
else
|
||||||
read ANSWER
|
read ANSWER
|
||||||
|
fi
|
||||||
|
fi
|
||||||
case $ANSWER in
|
case $ANSWER in
|
||||||
O|o)
|
O|o)
|
||||||
overold $i
|
overold $i
|
||||||
|
|
|
@ -55,7 +55,8 @@ chown root:root $PKG/usr/sbin/slackpkg
|
||||||
|
|
||||||
# Prepare /etc directory:
|
# Prepare /etc directory:
|
||||||
mkdir -pv $PKG/etc/slackpkg
|
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/*
|
chmod 644 $PKG/etc/slackpkg/*
|
||||||
chown root:root $PKG/etc/slackpkg/*
|
chown root:root $PKG/etc/slackpkg/*
|
||||||
mkdir -pv $PKG/etc/slackpkg/templates
|
mkdir -pv $PKG/etc/slackpkg/templates
|
||||||
|
|
Loading…
Reference in a new issue