Skip to content

Instantly share code, notes, and snippets.

@mockturtl
Created May 20, 2012 14:22
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save mockturtl/793e44d3d1fbc4745706 to your computer and use it in GitHub Desktop.
/usr/local/bin/apt
#!/usr/bin/python
import sys, os
def usage():
print "apt"
print "Usage: apt command [options]"
print " apt help command [options]"
print ""
print "Commands:"
print "autoclean - Erase old downloaded archive files"
print "autoremove - Remove automatically all unused packages"
print "build - Build binary or source packages from sources"
print "build-dep - Configure build-dependencies for source packages"
print "changelog - View a package's changelog"
print "check - Verify that there are no broken dependencies"
print "clean - Erase downloaded archive files"
print "contains - List packages containing a file"
print "content - List files contained in a package"
print "deb - Install a .deb package"
print "depends - Show raw dependency information for a package"
print "dist-upgrade - Perform an upgrade, possibly installing and removing packages"
print "download - Download the .deb file for a package"
print "dselect-upgrade - Follow dselect selections"
print "held - List all held packages"
print "help - Show help for a command"
print "hold - Hold a package"
print "install - Install/upgrade packages"
print "policy - Show policy settings"
print "purge - Remove packages and their configuration files"
print "rdepends - Show reverse dependency information for a package"
print "reinstall - Download and (possibly) reinstall a currently installed package"
print "remove - Remove packages"
print "search - Search for a package by name and/or expression"
print "show - Display detailed information about a package"
print "source - Download source archives"
print "sources - Edit /etc/apt/sources.list with nano"
print "unhold - Unhold a package"
print "update - Download lists of new/upgradable packages"
print "upgrade - Perform a safe upgrade"
print "version - Show the installed version of a package"
print " This apt has Super Cow Powers"
sys.exit(1)
if len(sys.argv) < 2:
usage()
sudo="sudo"
if os.getuid() == 0 :
sudo=""
argcommand = sys.argv[1]
argsuffix = sys.argv[2:]
showHelp = False
if argcommand == "help":
if len(sys.argv) < 3:
usage()
showHelp = True
argcommand = sys.argv[2]
argsuffix = sys.argv[3:]
argoptions = ""
for argoption in argsuffix:
argoptions = argoptions + " " + argoption
if argcommand in ["install", "remove", "update", "upgrade", "dist-upgrade", "clean", "dselect-upgrade", "build-dep", "check", "autoremove", "autoclean"]:
aptcommand = "apt-get"
command = sudo + " " + aptcommand + " " + argcommand + argoptions
elif argcommand in ["source", "moo"]:
aptcommand = "apt-get"
command = aptcommand + " " + argcommand + argoptions
elif argcommand in ["search", "show", "changelog"]:
aptcommand = "aptitude"
command = aptcommand + " " + argcommand + argoptions
elif argcommand in ["reinstall"]:
aptcommand = "aptitude"
command = sudo + " " + aptcommand + " " + argcommand + argoptions
elif argcommand in ["stats", "depends", "rdepends", "policy"]:
aptcommand = "apt-cache"
command = aptcommand + " " + argcommand + argoptions
elif argcommand == "sources":
command = sudo + " nano /etc/apt/sources.list"
elif argcommand == "held":
command = "dpkg --get-selections | grep hold"
elif argcommand == "contains":
command = "dpkg -S" + argoptions
elif argcommand == "content":
command = "dpkg -L" + argoptions
elif argcommand == "hold":
command = "echo " + argoptions + " hold | sudo dpkg --set-selections"
elif argcommand == "unhold":
command = "echo " + argoptions + " install | sudo dpkg --set-selections"
elif argcommand == "version":
command = "/usr/lib/linuxmint/common/version.py" + argoptions
elif argcommand == "purge":
command = sudo + " apt-get remove --purge" + argoptions
elif argcommand == "build":
command = sudo + " dpkg-buildpackage" + argoptions
elif argcommand == "deb":
command = sudo + " dpkg -i" + argoptions
elif argcommand == "download":
command = "apt-cache depends " + argoptions + " |grep -v \"Conflicts:\|Replaces:\"|awk '{print $NF}'|sed -e 's/[<>]//g'|xargs aptitude download -r"
else:
usage()
# Color highlighting
if argcommand in ["search", "show", "content", "version", "policy", "depends", "rdepends"] and len(argoptions.strip()) > 1:
command = command + " | highlight" + argoptions
if (showHelp):
print "\"apt "+ argcommand + argoptions + "\" is equivalent to \"" + command + "\""
else:
os.system(command)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment