This repository has been archived on 2023-10-10. You can view files and clone it, but cannot push or open issues/pull-requests.
dafuq/bin/dafuq-remove

55 lines
1.2 KiB
Bash
Executable File

#!/tools/bin/bash
NAME=$1
VERSION=$2
if [ -z $NAME ]; then
echo "[e] Please provide a package name.">&2
exit 1
fi
VERSIONS="/usr/dafuq/installed/$NAME-*"
if [ -z $VERSIONS ]; then
echo "[e] Cannot find package.">&2
exit 1
fi
echo "[i] Installed versions:"
i=0
for version in $VERSIONS; do
echo " [$i] $version"
i=$(expr $i + 1)
done
if [ $i == "1" ]; then
VERSION=$VERSIONS
elif [ -z $VERSION ]; then
echo "[e] Please provide a version number.">&2
exit 1
else
VERSION=$(echo $VERSIONS | cut -d" " -f $(expr $VERSION + 1))
if [ -z $VERSION ]; then
echo "[e] Incorrect version number.">&2
exit 1
fi
fi
echo "[i] Removing files..."
MANIFEST=$(tar xfO $VERSION manifest)
while read -r line; do
linetype=$(echo $line | cut -d":" -f 1)
if [ $linetype == "file" ]; then
filename=$(echo $line | cut -d" " -f 2)
if [ ! -e $filename ]; then
echo "[w] File missing from filesystem: $filename"
exit 1
fi
rm $filename
fi
done <<< "$MANIFEST"
while read -r line; do
linetype=$(echo $line | cut -d":" -f 1)
if [ $linetype == "dir" ]; then
rmdir $(echo $line | cut -d" " -f 2)
fi
done <<< "$MANIFEST"
rm $(echo $VERSION | sed -e "s,/usr/dafuq/packages/,/usr/dafuq/installed/,")
echo "[i] Done."