+
+def get_flavour_filename(flavour):
+ """Generate a iso9960 save filename out of the specified flavour
+
+ @flavour: grml flavour
+ """
+ return flavour.replace('-', '_')
+
+def adjust_syslinux_bootoptions(src, flavour):
+ """Adjust existing bootoptions of specified syslinux config to
+ grml2usb specific ones, e.g. change the location of the kernel...
+
+ @src: config file to alter
+ @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._]+)")
+ # flavour_re = re.compile("(label.*)(grml\w+)")
+ default_re = re.compile("(default.cfg)")
+ bootid_re = re.compile("bootid=[\w_-]+")
+ live_media_path_re = re.compile("live-media-path=[\w_/-]+")
+
+ bootopt = get_bootoptions(flavour)
+
+ regexe = []
+ option_re = None
+ if options.removeoption:
+ option_re = re.compile(r'/boot/release/.*/initrd.gz')
+
+ 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)
+ line = live_media_path_re.sub('', line)
+ line = append_re.sub(r'\1 live-media-path=/live/%s/ ' % flavour, line)
+ line = append_re.sub(r'\1 boot=live %s ' % bootopt, line)
+ line = append_re.sub(r'\1 %s=%s ' % ("bootid", UUID), line)
+ if option_re and option_re.search(line):
+ for regex in regexe:
+ line = regex.sub(' ', line)
+ sys.stdout.write(line)
+ fileinput.close()
+
+def adjust_labels(src, replacement):
+ """Adjust the specified labels in the syslinux config file src with
+ specified replacement
+ """
+ label_re = re.compile("^(\s*label\s*) ([a-zA-Z0-9_-]+)", re.I)
+ for line in fileinput.input(src, inplace=1):
+ line = label_re.sub(replacement, line)
+ sys.stdout.write(line)
+ fileinput.close()
+
+
+def add_syslinux_entry(filename, grml_flavour):
+ """Add includes for a specific grml_flavour to the specified filename
+
+ @filename: syslinux config file
+ @grml_flavour: grml flavour to add
+ """
+
+ entry_filename = "option_%s.cfg" % grml_flavour
+ entry = "include %s\n" % entry_filename
+
+ add_entry_if_not_present(filename, entry)
+ path = os.path.dirname(filename)
+