prtrej: initial import
This commit is contained in:
parent
ec3c8f87ab
commit
fe29385053
@ -1,5 +1,8 @@
|
|||||||
1.2 -> 1.2.1
|
1.2 -> 1.2.1
|
||||||
------------
|
------------
|
||||||
|
- oldfiles: add the option -l to show outdated build logs
|
||||||
|
- prtrej: clean up /var/lib/pkg/rejected in case a package was uninstalled
|
||||||
|
before merging its conflicting files
|
||||||
- prtsweep, prtwash: rewritten in perl
|
- prtsweep, prtwash: rewritten in perl
|
||||||
- prtcheck: test that all sources are signed
|
- prtcheck: test that all sources are signed
|
||||||
- pkgfoster: save the list of adoptees in ~/.config rather than cluttering $HOME;
|
- pkgfoster: save the list of adoptees in ~/.config rather than cluttering $HOME;
|
||||||
|
96
scripts/prtrej
Executable file
96
scripts/prtrej
Executable file
@ -0,0 +1,96 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# $Id: prtrej,v 1.4 2004/02/06 11:30:00 opel Exp $
|
||||||
|
# (c) 2003,2004 by Martin Opel <mo@obbl-net.de>
|
||||||
|
# (c) 2002 by Markus Ackermann <maol@symlink.ch>
|
||||||
|
#
|
||||||
|
# may be redistributed and modified under the terms of the GPL
|
||||||
|
# only usable with CRUX Linux, version 0.9.2 or higher
|
||||||
|
#
|
||||||
|
# USE AT YOUR OWN RISK
|
||||||
|
#
|
||||||
|
# Interactive tool to ask user what he/she wants to do with a rejected file
|
||||||
|
# in /var/lib/pkg/rejected
|
||||||
|
# Requires opt/dialog to be installed
|
||||||
|
# All identical files are removed without a user's interaction
|
||||||
|
# TODO: respect SYSROOT?
|
||||||
|
|
||||||
|
TMP=/tmp/rejdiff
|
||||||
|
REJ=/var/lib/pkg/rejected
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
echo "Removed $count unneeded files"
|
||||||
|
rm -f $TMP
|
||||||
|
}
|
||||||
|
|
||||||
|
interrupted() {
|
||||||
|
echo "Interrupted..."
|
||||||
|
cleanup
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
trap "interrupted" SIGHUP SIGINT SIGQUIT SIGTERM
|
||||||
|
|
||||||
|
count=0
|
||||||
|
|
||||||
|
if [ ! -d "$REJ" ]; then
|
||||||
|
echo "$REJ not found. Exiting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mapfile -t REJECTS < <(find $REJ -type f)
|
||||||
|
# Why not loop over the output of find?
|
||||||
|
# bash splits on whitespace, so by putting the newline-separated results
|
||||||
|
# of find into an array, we can use double-quotes to ensure any file with
|
||||||
|
# space in its name is not misinterpreted as multiple files.
|
||||||
|
# Redefining IFS is another option, but prone to unwanted side-effects.
|
||||||
|
|
||||||
|
for reject in "${REJECTS[@]}"; do
|
||||||
|
real="/${reject#*rejected/}"
|
||||||
|
#
|
||||||
|
# Insert a test to ensure that diff is given two valid args.
|
||||||
|
#
|
||||||
|
# Nonexistent $real suggests that $reject is no longer needed.
|
||||||
|
# Forgot to merge it, and then later uninstalled the package, perhaps?
|
||||||
|
# If this circumstance is common and $REJ becomes cluttered too easily,
|
||||||
|
# then someone might ask for another side-effect of prt-get remove.
|
||||||
|
# This cleanup could be incorporated directly into pkgrm, but until that
|
||||||
|
# happens we might as well do the cleanup here.
|
||||||
|
#
|
||||||
|
if [ ! -e "$real" ] || diff "$real" "$reject" >/dev/null; then
|
||||||
|
rm "$reject"
|
||||||
|
count=$(( count + 1 ))
|
||||||
|
else
|
||||||
|
diff -u "$real" "$reject" &> $TMP
|
||||||
|
|
||||||
|
ACTION=$(dialog --no-shadow --stdout \
|
||||||
|
--title "diff $real $reject" \
|
||||||
|
--textbox $TMP -1 -1 \
|
||||||
|
--menu "Make your selection:" 11 50 4 \
|
||||||
|
KEEP "Keep existing file." \
|
||||||
|
INST "Overwrite with file from package." \
|
||||||
|
EXIT "Exit immediately." \
|
||||||
|
" " "Do nothing now.")
|
||||||
|
|
||||||
|
case "$ACTION" in
|
||||||
|
"KEEP")
|
||||||
|
echo "Keeping old file, removing $reject."
|
||||||
|
rm $reject
|
||||||
|
;;
|
||||||
|
"INST")
|
||||||
|
echo "Installing new file, overwriting $real with $reject."
|
||||||
|
mv $reject $real
|
||||||
|
;;
|
||||||
|
"EXIT")
|
||||||
|
echo "Exiting..."
|
||||||
|
cleanup
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Leaving $real and $reject untouched for now."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cleanup
|
Loading…
Reference in New Issue
Block a user