summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2008-12-24 01:06:21 +0000
committerOlivier Blin <oblin@mandriva.com>2008-12-24 01:06:21 +0000
commit98e688c741509ec42dba5d45eaf9484fdfeeba91 (patch)
tree4650ac30dfe76c84074430e183190e56104a8412
parentcc594bb251691c2b66eed08692bf1f814cc169d1 (diff)
downloaddraklive-98e688c741509ec42dba5d45eaf9484fdfeeba91.tar
draklive-98e688c741509ec42dba5d45eaf9484fdfeeba91.tar.gz
draklive-98e688c741509ec42dba5d45eaf9484fdfeeba91.tar.bz2
draklive-98e688c741509ec42dba5d45eaf9484fdfeeba91.tar.xz
draklive-98e688c741509ec42dba5d45eaf9484fdfeeba91.zip
allow to create cdrom replicator
-rwxr-xr-xdraklive29
-rw-r--r--lib/MDV/Draklive/Storage.pm1
2 files changed, 30 insertions, 0 deletions
diff --git a/draklive b/draklive
index f7aa8ea..4e399db 100755
--- a/draklive
+++ b/draklive
@@ -1037,6 +1037,35 @@ sub record_usb_replicator {
maybe_umount_device($device);
}
+sub create_cdrom_replicator {
+ my ($live, $opts) = @_;
+
+ # FIXME: factorize with usb replicator, write in builddir/replicator/images-list
+ my $images_list = "/tmp/images-replicator.list";
+ output_p($images_list, "EN,English," . basename(get_disk_image_path($live)) . ",on\n");
+
+ # FIXME: write in builddir/replicator/syslinux.cfg
+ my $syslinux_cfg = "/tmp/syslinux-replicator.cfg";
+ local $opts->{append} = $live->{replicator}{append};
+ output_p($syslinux_cfg, build_syslinux_cfg($live, $live->{replicator}{media}, $opts));
+
+ my $label = $live->{replicator}{media}->get_media_label or die "the source device must be described by a label\n";
+ my $dest = get_disk_replicator_path($live);
+ $dest =~ s/.img$/.iso/;
+ build_iso_image(
+ $dest,
+ '',
+ $syslinux_cfg,
+ $label,
+ "/images/list=$images_list",
+ (map {
+ my ($src, $dest) = @$_;
+ my $dest_file = $dest =~ m!/$! ? $dest . basename($src) : $dest;
+ $dest_file . "=" . $src;
+ } group_by2(get_disk_replicator_files($live))),
+ );
+}
+
sub create_replicator {
my ($live) = @_;
diff --git a/lib/MDV/Draklive/Storage.pm b/lib/MDV/Draklive/Storage.pm
index b5a5504..220d71c 100644
--- a/lib/MDV/Draklive/Storage.pm
+++ b/lib/MDV/Draklive/Storage.pm
@@ -15,6 +15,7 @@ our %storage_types = (
format => \&main::format_cdrom_device,
record_needs_master => 1,
record => \&main::record_cdrom_master,
+ replicator => \&main::create_cdrom_replicator,
},
usb => {
modules => 'bus/usb disk/usb',