X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/4b2de6720d65c9e7a2cfded0da7d04d758a8e1e2..d328fd1a20543192a7ea3eac124f10a5793743e9:/cmdline/apt-mark diff --git a/cmdline/apt-mark b/cmdline/apt-mark index 226d2079b..2326ece38 100755 --- a/cmdline/apt-mark +++ b/cmdline/apt-mark @@ -2,13 +2,14 @@ from optparse import OptionParser +import sys +import os.path + try: import apt_pkg except ImportError: print "Error importing apt_pkg, is python-apt installed?" - -import sys -import os.path + sys.exit(1) actions = { "markauto" : 1, "unmarkauto": 0 @@ -31,8 +32,12 @@ def mark_unmark_automatic(filename, action, pkgs): " mark or unmark automatic flag" # open the statefile if os.path.exists(STATE_FILE): - tagfile = apt_pkg.ParseTagFile(open(STATE_FILE)) - outfile = open(STATE_FILE+".tmp","w") + try: + tagfile = apt_pkg.ParseTagFile(open(STATE_FILE)) + outfile = open(STATE_FILE+".tmp","w") + except IOError, msg: + print "%s, are you root?" % (msg) + sys.exit(1) while tagfile.Step(): pkgname = tagfile.Section.get("Package") autoInst = tagfile.Section.get("Auto-Installed") @@ -41,11 +46,16 @@ def mark_unmark_automatic(filename, action, pkgs): print "changing %s to %s" % (pkgname,action) newsec = apt_pkg.RewriteSection(tagfile.Section, [], - [ ("Auto-Installed",str(action)) ] - ) + [ ("Auto-Installed",str(action)) ]) + pkgs.remove(pkgname) outfile.write(newsec+"\n") else: outfile.write(str(tagfile.Section)+"\n") + if action == 1: + for pkgname in pkgs: + if options.verbose: + print "changing %s to %s" % (pkgname,action) + outfile.write("Package: %s\nAuto-Installed: %d\n\n" % (pkgname, action)) # all done, rename the tmpfile os.chmod(outfile.name, 0644) os.rename(outfile.name, STATE_FILE)