Skip to content

Instantly share code, notes, and snippets.

@lexeii
Created August 29, 2017 13:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lexeii/9d3b2eb3cc94a099942a4ed30e6c8ec8 to your computer and use it in GitHub Desktop.
Save lexeii/9d3b2eb3cc94a099942a4ed30e6c8ec8 to your computer and use it in GitHub Desktop.
#!/bin/sh
mkdir -p /tmp/ORPHAN
echo > /tmp/ORPHAN/ORPHANS.txt
echo 1 > /tmp/ORPHAN/UNINSTALLED.txt
while [ $(grep -c 1 /tmp/ORPHAN/UNINSTALLED.txt) == '1' ]; do
echo > /tmp/ORPHAN/DEPENDENCIES.txt
CHOICE=''
DESCRIPTION=''
for VERZ in /var/lib/tazpkg/installed/*; do
. $VERZ/receipt
for DEPENDENCY in $DEPENDS; do
echo "$DEPENDENCY" >> /tmp/ORPHAN/DEPENDENCIES.txt
done
done
for VERZ in /var/lib/tazpkg/installed/*; do
PACKAGE=$(basename $VERZ)
if [ -z "$(sed -n "s/^${PACKAGE}$/&/p" /tmp/ORPHAN/DEPENDENCIES.txt)" ] &&
[ $(grep -c $PACKAGE /tmp/ORPHAN/ORPHANS.txt) == '0' ]; then
CHOICE="$CHOICE FALSE|$PACKAGE|$(tazpkg -d $PACKAGE | sed '1,3d;$d' | sed '$d')|"
echo $PACKAGE >> /tmp/ORPHAN/ORPHANS.txt
fi
done
echo 0 > /tmp/ORPHAN/UNINSTALLED.txt
IFS='|'
echo $CHOICE > /tmp/ORPHAN/CHOICE.txt
yad \
--list \
--fullscreen \
--text 'Pick orphaned Packages to uninstall' \
--multiple \
--checklist \
--column='Pick' \
--column='PACKAGE' \
--column 'Description' \
${CHOICE} \
--print-column=2 \
--separator=' ' \
--button='Uninstall' \
--button='cancel' | \
while read PKG; do
echo 1 > /tmp/ORPHAN/UNINSTALLED.txt
echo y | tazpkg -r $PKG
done
done
rm -r /tmp/ORPHAN
@F1lou
Copy link

F1lou commented Sep 1, 2017

In addition to this script I coded another finding and removing orphaned packages after removal of another.
To be found under: https://gist.github.com/F1lou/c7cb839dfed6e86268045bba9ca86685

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment