#!/bin/sh

SCRIPT_NAME=$(basename "$0")

usage() {
    echo "Usage: $SCRIPT_NAME <subcommand>"
    echo ""
    echo "Subcommands:"
    echo "  obsolete   Packages installed but not available in any configured repo"
    echo "  manual     Packages that were manually installed"
    echo "  residual   Packages removed but with configuration files remaining"
}

cmd_obsolete() {
    aptitude search '~o' -F '%p'
}

cmd_manual() {
    apt-mark showmanual
}

cmd_residual() {
    dpkg -l | awk '/^rc/ { print $2 }'
}

case "$1" in
    obsolete)  cmd_obsolete ;;
    manual)    cmd_manual ;;
    residual)  cmd_residual ;;
    ""|--help|-h) usage ;;
    *)
        echo "$SCRIPT_NAME: unknown subcommand '$1'" >&2
        echo "" >&2
        usage >&2
        exit 1
        ;;
esac
