#!/bin/bash # A wrapper for apt[itutde] # searches the repos for your query before trying to do the action. # Install : # apt install aptitude dmenu ; cp wrapter /usr/local/bin/wrapter ; cd /usr/local/bin/ ; chmod +x wrapter ; for link in Install Isntall Show Remove Why ; do ln -s wrapter $link ; done action="$(basename "${0}")" test "${action}" = wrapter && action="$(dmenu <<< "\ install show remove why\ ")" case "${action}" in *[iI][ns][ns]tall* ) action=install sudo="sudo ";; *[sS]how* ) action=show;; *[Rr]emove* | *purge* ) action=purge sudo="sudo ";; *[wW]hy* ) action=why;; * ) exit 1;; esac pkgs="$(aptitude search $@ | grep -v ":i386" )" test -z "${pkgs}" && echo "No pkgs found matching $@." && exit 2 nb="$(wc -l <<< "${pkgs}")" test "${nb}" -gt 1 && echo "$nb packages found." && pkgs="$(echo -e "${pkgs}" | dmenu)" test "$(wc -l <<< "${pkgs}")" -eq 1 && pkgs="$(tr -s " " <<< "${pkgs}" | cut -d " " -f 2)" && echo -e "Package was found: ${action}ing ${pkgs}\n\$ ${sudo}aptitude ${action} ${pkgs}" && ${sudo}aptitude ${action} "${pkgs}"