[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] pygrub: Add option to list grub entries
# HG changeset patch # User Charles Arnold <carnold@xxxxxxxx> # Date 1351249508 -3600 # Node ID 6f9e46917eb8771914041b98f714e8f485fca5ef # Parent 03af0abd2b72dfab3f2e50dd502108de8603f741 pygrub: Add option to list grub entries The argument to "--entry" allows 2 syntaxes, either directly the entry number in menu.lst, or the whole string behind the "title" key word. This poses the following issue: >From Dom0 there is no way to guess the number and, or the complete title string because this string contains the kernel version, which will change with a kernel update. This patch adds [-l|--list-entries] as an argument to pygrub. Signed-off-by: Charles Arnold <carnold@xxxxxxxx> Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- diff -r 03af0abd2b72 -r 6f9e46917eb8 tools/pygrub/src/pygrub --- a/tools/pygrub/src/pygrub Fri Oct 26 12:03:12 2012 +0100 +++ b/tools/pygrub/src/pygrub Fri Oct 26 12:05:08 2012 +0100 @@ -595,7 +595,17 @@ def run_grub(file, entry, fs, cfg_args): sel = g.run() g = Grub(file, fs) - if interactive: + + if list_entries: + for i in range(len(g.cf.images)): + img = g.cf.images[i] + print "title: %s" % img.title + print " root: %s" % img.root + print " kernel: %s" % img.kernel[1] + print " args: %s" % img.args + print " initrd: %s" % img.initrd[1] + + if interactive and not list_entries: curses.wrapper(run_main) else: sel = g.cf.default @@ -702,7 +712,7 @@ if __name__ == "__main__": sel = None def usage(): - print >> sys.stderr, "Usage: %s [-q|--quiet] [-i|--interactive] [-n|--not-really] [--output=] [--kernel=] [--ramdisk=] [--args=] [--entry=] [--output-directory=] [--output-format=sxp|simple|simple0] <image>" %(sys.argv[0],) + print >> sys.stderr, "Usage: %s [-q|--quiet] [-i|--interactive] [-l|--list-entries] [-n|--not-really] [--output=] [--kernel=] [--ramdisk=] [--args=] [--entry=] [--output-directory=] [--output-format=sxp|simple|simple0] <image>" %(sys.argv[0],) def copy_from_image(fs, file_to_read, file_type, output_directory, not_really): @@ -736,8 +746,8 @@ if __name__ == "__main__": dataoff += len(data) try: - opts, args = getopt.gnu_getopt(sys.argv[1:], 'qinh::', - ["quiet", "interactive", "not-really", "help", + opts, args = getopt.gnu_getopt(sys.argv[1:], 'qilnh::', + ["quiet", "interactive", "list-entries", "not-really", "help", "output=", "output-format=", "output-directory=", "entry=", "kernel=", "ramdisk=", "args=", "isconfig", "debug"]) @@ -753,6 +763,7 @@ if __name__ == "__main__": output = None entry = None interactive = True + list_entries = False isconfig = False debug = False not_really = False @@ -771,6 +782,8 @@ if __name__ == "__main__": interactive = False elif o in ("-i", "--interactive"): interactive = True + elif o in ("-l", "--list-entries"): + list_entries = True elif o in ("-n", "--not-really"): not_really = True elif o in ("-h", "--help"): @@ -855,6 +868,9 @@ if __name__ == "__main__": fs = None continue + if list_entries: + sys.exit(0) + # Did looping through partitions find us a kernel? if not fs: raise RuntimeError, "Unable to find partition containing kernel" _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |