X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=2011-seminar%2F300-python%2Ffirefox.py;fp=2011-seminar%2F300-python%2Ffirefox.py;h=26f9c9005b033395d5878b4356ae8f96ddd3de22;hb=d3353661e4103ad378dc5b4ea0b787067393c301;hp=0000000000000000000000000000000000000000;hpb=08ed129f705c2b8e72083ff6cc01886231b7c095;p=libguestfs-talks.git diff --git a/2011-seminar/300-python/firefox.py b/2011-seminar/300-python/firefox.py new file mode 100755 index 0000000..26f9c90 --- /dev/null +++ b/2011-seminar/300-python/firefox.py @@ -0,0 +1,39 @@ +#!/usr/bin/python + +import sys +import re +import guestfs + +assert (len (sys.argv) == 2) +disk = sys.argv[1] + +g = guestfs.GuestFS () +g.add_drive_opts (disk, readonly=1) +g.launch () + +roots = g.inspect_os () +if len (roots) == 0: + raise (Error ("inspect_vm: no operating systems found")) + +for root in roots: + mps = g.inspect_get_mountpoints (root) + def compare (a, b): + if len(a[0]) > len(b[0]): + return 1 + elif len(a[0]) == len(b[0]): + return 0 + else: + return -1 + mps.sort (compare) + for mp_dev in mps: + try: + g.mount_ro (mp_dev[1], mp_dev[0]) + except RuntimeError as msg: + print "%s (ignored)" % msg + + apps = g.inspect_list_applications (root) + for app in apps: + if re.search ('firefox', app['app_name'], re.I): + print ("'%s' version: %s" % (app['app_name'], app['app_version'])) + + g.umount_all ()