Mimic /boot/%SHORT_NAME% like on the ISO
[grml2usb.git] / grml2usb
index ea6ae82..39e441f 100755 (executable)
--- a/grml2usb
+++ b/grml2usb
@@ -943,28 +943,19 @@ def copy_system_files(grml_flavour, iso_mount, target):
     else:
         exec_rsync(filesystem_module, squashfs_target + 'filesystem.module')
 
+    kernel = search_file('vmlinuz', iso_mount)
+    if kernel is None:
+        # compat for releases < 2011.12
+        kernel = search_file('linux26', iso_mount)
 
-    release_path = 'boot/release/' + grml_flavour.replace('-', '')
-    release_target = target + "/" + release_path
-    execute(mkdir, release_target)
-
-    prefix = ""
-    if os.path.isdir(iso_mount + '/boot/release'):
-        prefix = release_path + '/'
-
-    kernel = search_file(prefix + 'linux26', iso_mount)
     if kernel is None:
-        logging.critical("Fatal kernel not found")
+        logging.critical("Fatal: kernel not found")
         raise CriticalException("error locating kernel file")
-    else:
-        exec_rsync(kernel, release_target + '/linux26')
 
-    initrd = search_file(prefix + 'initrd.gz', iso_mount)
-    if initrd is None:
-        logging.critical("Fatal: initrd not found")
-        raise CriticalException("error locating initrd file")
-    else:
-        exec_rsync(initrd, release_target + '/initrd.gz')
+    source = os.path.dirname(kernel) + '/'
+    dest = target + '/' + os.path.dirname(kernel).replace(iso_mount,'') + '/'
+    execute(mkdir, dest)
+    exec_rsync(source, dest)
 
 
 def update_grml_versions(iso_mount, target):
@@ -1295,7 +1286,7 @@ def modify_grub_config(filename):
         for regex in options.removeoption:
             regexe.append(re.compile(r'%s' % regex))
 
-        option_re = re.compile(r'(.*/boot/release/.*linux26.*)')
+        option_re = re.compile(r'(.*/boot/.*(linux26|vmlinuz).*)')
 
         for line in fileinput.input(filename, inplace=1):
             if regexe and option_re.search(line):
@@ -1431,8 +1422,7 @@ def adjust_syslinux_bootoptions(src, flavour):
     @flavour: grml flavour
     """
 
-    append_re = re.compile("^(\s*append.*/boot/release.*)$", re.I)
-    boot_re = re.compile("/boot/([a-zA-Z0-9_]+/)+([a-zA-Z0-9._]+)")
+    append_re = re.compile("^(\s*append.*/boot/.*)$", re.I)
     # flavour_re = re.compile("(label.*)(grml\w+)")
     default_re = re.compile("(default.cfg)")
     bootid_re = re.compile("bootid=[\w_-]+")
@@ -1443,13 +1433,12 @@ def adjust_syslinux_bootoptions(src, flavour):
     regexe = []
     option_re = None
     if options.removeoption:
-        option_re = re.compile(r'/boot/release/.*/initrd.gz')
+        option_re = re.compile(r'/boot/.*/(initrd.gz|initrd.img)')
 
         for regex in options.removeoption:
             regexe.append(re.compile(r'%s' % regex))
 
     for line in fileinput.input(src, inplace=1):
-        line = boot_re.sub(r'/boot/release/%s/\2 ' % flavour.replace('-', ''), line)
         # line = flavour_re.sub(r'\1 %s-\2' % flavour, line)
         line = default_re.sub(r'%s-\1' % flavour, line)
         line = bootid_re.sub('', line)
@@ -1492,7 +1481,7 @@ def add_syslinux_entry(filename, grml_flavour):
     data.close()
 
 def modify_filenames(grml_flavour, target, filenames):
-    """Replace the standarf filenames with the new ones
+    """Replace the standard filenames with the new ones
 
     @grml_flavour: grml-flavour strin
     @target: directory where the files are located
@@ -1569,7 +1558,7 @@ def handle_syslinux_config(grml_flavour, target):
     entry = 'include %s\n' % new_default
     defaults_file = '%s/defaults.cfg' % syslinux_target
     new_default_with_path = "%s/%s" % (syslinux_target, new_default)
-    new_grml_cfg = "%s/%s_grml.cfg" % ( syslinux_target, flavour_filename)
+    new_grml_cfg = "%s/%s_grml.cfg" % (syslinux_target, flavour_filename)
 
     if os.path.isfile(defaults_file):