zpkg/src/remove.sh
2020-05-22 16:33:16 +02:00

38 lines
692 B
Bash

#!/bin/sh
# files from stdin
# $1 = prefix
delete_files()
{
while read -r in
do
if [ -n "$in" ]
then
$1 rm -d "$in" 2>/dev/null
fi
done
}
remove_package()
{
cd "$PKG_PATH"
archive="$(pwd)/$1.tar.xz"
if [ ! -f "$archive" ] || ! grep -q -w "^$1" installed
then
echo "Package '$1' not installed" >&2
return 1
fi
echo "Removing $1"
( # delete root files
cd /
tar -tf "$archive" ROOT 2>/dev/null | sed 's|^ROOT/||g' | tac | delete_files sudo
)
( # delete home files
cd "$HOME"
tar -tf "$archive" HOME 2>/dev/null | sed 's|^HOME/||g' | tac | delete_files
)
sudo rm "$archive" 2>/dev/null
sudo sed -i "/^$1 /d" installed
}