@@ -28,6 +28,7 @@ LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
diffprog=${DIFFPROG:-'vim -d'}
diffsearchpath=${DIFFSEARCHPATH:-/etc}
USE_COLOR='y'
+SUDO=''
declare -a oldsaves
declare -i USE_FIND=0 USE_LOCATE=0 USE_PACDB=0 OUTPUTONLY=0
@@ -50,6 +51,7 @@ Search Options: select one (default: --pacmandb)
General Options:
-o/--output print files instead of merging them
--nocolor remove colors from output
+ -s/--sudo use sudo to merge/remove files
Environment Variables:
DIFFPROG override the merge program: (default: 'vim -d')
@@ -109,6 +111,8 @@ while [[ -n "$1" ]]; do
OUTPUTONLY=1;;
--nocolor)
USE_COLOR='n';;
+ -s|--sudo)
+ SUDO=sudo;;
-V|--version)
version; exit 0;;
-h|--help)
@@ -168,25 +172,29 @@ while IFS= read -u 3 -r -d '' pacfile; do
msg "%s file found for %s" "$file_type" "$file"
if [ ! -f "$file" ]; then
warning "$file does not exist"
- rm -iv "$pacfile"
+ $SUDO rm -iv "$pacfile"
continue
fi
if cmp -s "$pacfile" "$file"; then
msg2 "Files are identical, removing..."
- rm -v "$pacfile"
+ $SUDO rm -v "$pacfile"
else
ask "(V)iew, (S)kip, (R)emove %s, (O)verwrite with %s, (Q)uit: [v/s/r/o/q] " "$file_type" "$file_type"
while read c; do
case $c in
q|Q) exit 0;;
- r|R) rm -v "$pacfile"; break ;;
- o|O) mv -v "$pacfile" "$file"; break ;;
+ r|R) $SUDO rm -v "$pacfile"; break ;;
+ o|O) $SUDO mv -v "$pacfile" "$file"; break ;;
v|V)
- $diffprog "$pacfile" "$file"
+ if [[ -n "$SUDO" ]]; then
+ SUDO_EDITOR="$diffprog" sudoedit "$pacfile" "$file"
+ else
+ $diffprog "$pacfile" "$file"
+ fi
if cmp -s "$pacfile" "$file"; then
msg2 "Files are identical, removing..."
- rm -v "$pacfile"
+ $SUDO rm -v "$pacfile"
break
fi
ask "(V)iew, (S)kip, (R)emove %s, (O)verwrite with %s, (Q)uit: [v/s/r/o/q] " "$file_type" "$file_type";