Browse Source

* cmdline/apt-mark:

- add "showauto" option to show automatically installed packages
debian/1.8.y
Michael Vogt 13 years ago
parent
commit
a9b5e24b6b
  1. 72
      cmdline/apt-mark
  2. 2
      debian/changelog

72
cmdline/apt-mark

@ -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)

2
debian/changelog

@ -52,6 +52,8 @@ apt (0.7.21) UNRELEASED; urgency=low
hash by using locale independant tolower_ascii() function.
Thanks to M. Vefa Bicakci (LP: #80248)
* build fixes for g++-4.4
* cmdline/apt-mark:
- add "showauto" option to show automatically installed packages
[ Dereck Wonnacott ]
* apt-ftparchive might write corrupt Release files (LP: #46439)

Loading…
Cancel
Save