X-Git-Url: http://git.grml.org/?p=grml2usb.git;a=blobdiff_plain;f=grml2usb;h=ce2288207c85f7128f522425aaa7ff37adaf12cd;hp=a09b97f8f7e16694ea7c82457c44c293a5c5c61b;hb=53db55285b887a61a8eec04b19c569a0836c2274;hpb=f460ee6e041c8e9f523f5e1298265e26b7629b22 diff --git a/grml2usb b/grml2usb index a09b97f..ce22882 100755 --- a/grml2usb +++ b/grml2usb @@ -20,7 +20,7 @@ import fileinput import glob # global variables -PROG_VERSION = "0.9.17" +PROG_VERSION = "0.9.18" MOUNTED = set() # register mountpoints TMPFILES = set() # register tmpfiles DATESTAMP = time.mktime(datetime.datetime.now().timetuple()) # unique identifier for syslinux.cfg @@ -32,6 +32,11 @@ def syslinux_warning(option, opt, value, parser): "is grml2usb's default. Continuing anyway.\n") setattr(parser.values, option.dest, True) +# if grub option is set, unset syslinux option +def grub_option(option, opt, value, parser): + setattr(parser.values, option.dest, True) + setattr(parser.values, 'syslinux', False) + # cmdline parsing USAGE = "Usage: %prog [options] <[ISO[s] | /live/image]> \n\ \n\ @@ -56,7 +61,8 @@ parser.add_option("--fat16", dest="fat16", action="store_true", help="format specified partition with FAT16") parser.add_option("--force", dest="force", action="store_true", help="force any actions requiring manual interaction") -parser.add_option("--grub", dest="grub", action="store_true", +parser.add_option("--grub", dest="grub", action="callback", + callback=grub_option, help="install grub bootloader instead of (default) syslinux") parser.add_option("--grub-mbr", dest="grubmbr", action="store_true", help="install grub into MBR instead of (default) PBR") @@ -945,7 +951,7 @@ def check_for_fat(partition): raise CriticalException("Failed to read device %s" " (wrong UID/permissions or device/directory not present?)" % partition) - if options.syslinux and filesystem != "vfat": + if filesystem != "vfat": raise CriticalException("Partition %s does not contain a FAT16 filesystem. (Use --fat16 or run mkfs.vfat %s)" % (partition, partition)) except OSError: @@ -1220,6 +1226,8 @@ def install_iso_files(grml_flavour, iso_mount, device, target): # * catch "install: .. No space left on device" & CO if options.dryrun: + global GRML_DEFAULT + GRML_DEFAULT = grml_flavour return 0 elif not options.bootloaderonly: logging.info("Copying files. This might take a while....") @@ -1808,7 +1816,7 @@ def handle_vfat(device): # check for vfat filesystem if device is not None and not os.path.isdir(device): try: - check_for_fat(device) + if options.syslinux: check_for_fat(device) except CriticalException, error: logging.critical("Execution failed: %s", error) sys.exit(1) @@ -1892,6 +1900,10 @@ def main(): if options.dryrun: logging.info("Running in simulation mode as requested via option dry-run.") + if options.grubmbr and not options.grub: + logging.critical("Error: --grub-mbr requires --grub option.") + sys.exit(1) + # specified arguments device = args[len(args) - 1] isos = args[0:len(args) - 1]