#!/bin/bash echo "Calculate keep packages..." keep=$(pkgdeplist -l base | awk '{print $2}') if [ "$1" ]; then echo "Calculate extrakeep packages..." extrakeep=$(pkgdeplist -l $@ | awk '{print $2}') fi keep="$keep $extrakeep" echo "Get all installed packages..." allinstalled=$(scratch listinst | awk '{print $1}') echo "Calculate selected packages to remove..." for pkg in $allinstalled; do echo $keep | tr ' ' '\n' | grep -qx $pkg if [ "$?" != 0 ]; then if [ "$remove" = "" ]; then remove=$pkg else remove="$remove $pkg" fi fi done if [ -n "$remove" ]; then scratch remove $remove fi exit $?