|
|
@@ -14,34 +14,21 @@ actions = { "markauto" : 1,
|
|
|
"unmarkauto": 0
|
|
|
}
|
|
|
|
|
|
-if __name__ == "__main__":
|
|
|
- apt_pkg.init()
|
|
|
-
|
|
|
- # option parsing
|
|
|
- parser = OptionParser()
|
|
|
- parser.usage = "%prog [options] {markauto|unmarkauto} packages..."
|
|
|
- parser.add_option("-f", "--file", action="store", type="string",
|
|
|
- dest="filename",
|
|
|
- help="read/write a different file")
|
|
|
- parser.add_option("-v", "--verbose",
|
|
|
- action="store_true", dest="verbose", default=False,
|
|
|
- help="print verbose status messages to stdout")
|
|
|
- (options, args) = parser.parse_args()
|
|
|
- if len(args) < 2:
|
|
|
- parser.error("not enough argument")
|
|
|
-
|
|
|
- # get pkgs to change
|
|
|
- if args[0] not in actions.keys():
|
|
|
- parser.error("first argument must be 'markauto' or 'unmarkauto'")
|
|
|
- pkgs = args[1:]
|
|
|
- action = actions[args[0]]
|
|
|
-
|
|
|
- # get the state-file
|
|
|
- if not options.filename:
|
|
|
- STATE_FILE = apt_pkg.Config.FindDir("Dir::State") + "extended_states"
|
|
|
- else:
|
|
|
- STATE_FILE=options.filename
|
|
|
+def show_automatic(filename):
|
|
|
+ if not os.path.exists(STATE_FILE):
|
|
|
+ return
|
|
|
+ auto = set()
|
|
|
+ tagfile = apt_pkg.ParseTagFile(open(STATE_FILE))
|
|
|
+ while tagfile.Step():
|
|
|
+ pkgname = tagfile.Section.get("Package")
|
|
|
+ autoInst = tagfile.Section.get("Auto-Installed")
|
|
|
+ if int(autoInst):
|
|
|
+ auto.add(pkgname)
|
|
|
+ print "\n".join(sorted(auto))
|
|
|
+
|
|
|
|
|
|
+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))
|
|
|
@@ -63,3 +50,34 @@ if __name__ == "__main__":
|
|
|
os.chmod(outfile.name, 0644)
|
|
|
os.rename(outfile.name, STATE_FILE)
|
|
|
os.chmod(STATE_FILE, 0644)
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ apt_pkg.init()
|
|
|
+
|
|
|
+ # option parsing
|
|
|
+ parser = OptionParser()
|
|
|
+ parser.usage = "%prog [options] {markauto|unmarkauto} packages..."
|
|
|
+ parser.add_option("-f", "--file", action="store", type="string",
|
|
|
+ dest="filename",
|
|
|
+ help="read/write a different file")
|
|
|
+ parser.add_option("-v", "--verbose",
|
|
|
+ action="store_true", dest="verbose", default=False,
|
|
|
+ help="print verbose status messages to stdout")
|
|
|
+ (options, args) = parser.parse_args()
|
|
|
+
|
|
|
+ # get the state-file
|
|
|
+ if not options.filename:
|
|
|
+ STATE_FILE = apt_pkg.Config.FindDir("Dir::State") + "extended_states"
|
|
|
+ else:
|
|
|
+ STATE_FILE=options.filename
|
|
|
+
|
|
|
+ if args[0] == "showauto":
|
|
|
+ show_automatic(STATE_FILE)
|
|
|
+ else:
|
|
|
+ # get pkgs to change
|
|
|
+ if args[0] not in actions.keys():
|
|
|
+ parser.error("first argument must be 'markauto', 'unmarkauto' or 'showauto'")
|
|
|
+ pkgs = args[1:]
|
|
|
+ action = actions[args[0]]
|
|
|
+ mark_unmark_automatic(STATE_FILE, action, pkgs)
|