From 98e688c741509ec42dba5d45eaf9484fdfeeba91 Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Wed, 24 Dec 2008 01:06:21 +0000 Subject: allow to create cdrom replicator --- draklive | 29 +++++++++++++++++++++++++++++ lib/MDV/Draklive/Storage.pm | 1 + 2 files changed, 30 insertions(+) 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', -- cgit v1.2.1