summaryrefslogtreecommitdiffstats
path: root/draklive
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2008-09-25 10:19:29 +0000
committerOlivier Blin <oblin@mandriva.com>2008-09-25 10:19:29 +0000
commit916a500c4bfdf5eca068d4785f1297d3aa5bfbf0 (patch)
treeb2d2172494956e30b2f428176d239ce9a89bab3f /draklive
parent48acf485fcea76de3cd5907539f6ab936b4ff53c (diff)
downloaddraklive-916a500c4bfdf5eca068d4785f1297d3aa5bfbf0.tar
draklive-916a500c4bfdf5eca068d4785f1297d3aa5bfbf0.tar.gz
draklive-916a500c4bfdf5eca068d4785f1297d3aa5bfbf0.tar.bz2
draklive-916a500c4bfdf5eca068d4785f1297d3aa5bfbf0.tar.xz
draklive-916a500c4bfdf5eca068d4785f1297d3aa5bfbf0.zip
extract install_usb_bootloader (to be reused for replicator masters)
Diffstat (limited to 'draklive')
-rwxr-xr-xdraklive41
1 files changed, 25 insertions, 16 deletions
diff --git a/draklive b/draklive
index 3659c17..1997d48 100755
--- a/draklive
+++ b/draklive
@@ -1407,25 +1407,13 @@ sub record_cdrom_master {
run_('wodim', '-v', 'dev=' . $device, $src);
}
-sub record_usb_master {
- my ($live, $opts) = @_;
- my $media = $live->{media};
+sub install_usb_bootloader {
+ my ($live, $media, $opts) = @_;
my $media_boot = get_media_prefix($live, 'boot', $opts->{boot});
- my $media_loopbacks = get_media_prefix($live, 'loopbacks', $opts->{boot});
-
- if (my $label = !$opts->{boot_only} && $opts->{device} && get_media_label($media)) {
- set_device_label($opts->{device}, get_media_setting($media, 'fs'), $label);
- }
- my $device = get_media_device($live, $opts)
- or die "unable to find recording device (missing label? try with --device <device>)\n";
+ my $device = get_media_device($live, $opts);
my $bootloader = get_boot_setting($media, 'bootloader', $opts);
- member($bootloader, 'grub', 'syslinux') or die "no bootloader defined in media configuration\n";
- mkdir_p($live->{mnt});
- run_('mount', if_(-f $device, '-o', 'loop'), $device, $live->{mnt})
- or die "unable to mount $device\n";
- rm_rf($live->{mnt} . $media_boot) if -e $live->{mnt} . $media_boot;
- cp_af(get_builddir($live) . $live->{prefix}{build}{boot}, $live->{mnt} . $media_boot);
+ member($bootloader, 'grub', 'syslinux') or die "no bootloader defined in media configuration\n";
my $grub_device_map = $live->{mnt} . $media_boot . "/grub/device.map";
if ($bootloader eq 'syslinux') {
cp_f(get_builddir($live) . $_, $live->{mnt}) foreach map {
@@ -1467,6 +1455,27 @@ sub record_usb_master {
} else {
warn "not running $bootloader on non block device $device\n";
}
+}
+
+sub record_usb_master {
+ my ($live, $opts) = @_;
+ my $media = $live->{media};
+ my $media_boot = get_media_prefix($live, 'boot', $opts->{boot});
+ my $media_loopbacks = get_media_prefix($live, 'loopbacks', $opts->{boot});
+
+ if (my $label = !$opts->{boot_only} && $opts->{device} && get_media_label($media)) {
+ set_device_label($opts->{device}, get_media_setting($media, 'fs'), $label);
+ }
+ my $device = get_media_device($live, $opts)
+ or die "unable to find recording device (missing label? try with --device <device>)\n";
+
+ mkdir_p($live->{mnt});
+ run_('mount', if_(-f $device, '-o', 'loop'), $device, $live->{mnt})
+ or die "unable to mount $device\n";
+ rm_rf($live->{mnt} . $media_boot) if -e $live->{mnt} . $media_boot;
+ cp_af(get_builddir($live) . $live->{prefix}{build}{boot}, $live->{mnt} . $media_boot);
+
+ install_usb_bootloader($live, $media, $opts);
do {
my $loopbacks_source = get_builddir($live) . $live->{prefix}{build}{loopbacks} . '/';