diff --git a/zypper_autoremove.bash b/zypper_autoremove.bash new file mode 100755 index 0000000..40d4b4d --- /dev/null +++ b/zypper_autoremove.bash @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +# Script that imitates `apt autoremove` for zypper as there is no native solution. + +package_list=$(sudo zypper packages --unneeded) +table_start=$(echo "$package_list" | grep -n "S | Repository | Name"| gawk '{print $1}' FS=":") + +unneeded_packages=() +while IFS= read -r package; do + package="$(echo "$package"| awk -F '|' '{ print $3 }' | xargs)" + unneeded_packages+=("$package") +done < <(echo "$package_list" | tail -n+$((table_start+2))) + +unneeded_package_list=$(printf '%s ' "${unneeded_packages[@]}") + +if [ "$unneeded_package_list" = " " ]; then + sudo zypper rm -u $unneeded_package_list +else + echo "No unneeded packages." +fi +