From eb087c07bf2b3894f26bd747d09e8124efc3efcb Mon Sep 17 00:00:00 2001 From: Ulrich Dangel Date: Sat, 31 Dec 2011 12:53:46 +0100 Subject: [PATCH] Support multiple flavours on a cd --- grml2usb | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/grml2usb b/grml2usb index 13baf0e..7d9f92e 100755 --- a/grml2usb +++ b/grml2usb @@ -768,19 +768,24 @@ 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) - - if kernel is None: - logging.critical("Fatal: kernel not found") - raise CriticalException("error locating kernel file") - - source = os.path.dirname(kernel) + '/' - dest = target + '/' + os.path.dirname(kernel).replace(iso_mount,'') + '/' - execute(mkdir, dest) - exec_rsync(source, dest) + cleaned_flavour = re.sub(r'[,._-]', '', grml_flavour) + + if os.path.isdir(iso_mount + '/boot/' + cleaned_flavour): + exec_rsync(iso_mount + '/boot/' + cleaned_flavour, target + '/boot') + else: + kernel = search_file('vmlinuz', iso_mount) + if kernel is None: + # compat for releases < 2011.12 + kernel = search_file('linux26', iso_mount) + + if kernel is None: + logging.critical("Fatal: kernel not found") + raise CriticalException("error locating kernel file") + + 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): -- 2.1.4