From 8882c347c5d80b11be3d8c6683a8279375261dce Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Tue, 28 Oct 2008 20:49:34 +0000 Subject: move get_media_setting as method in MDV::Draklive::Media --- draklive | 60 +++++++++++++++++++++-------------------------- lib/MDV/Draklive/Media.pm | 6 +++++ 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/draklive b/draklive index 46f7966..0dcea7d 100755 --- a/draklive +++ b/draklive @@ -184,10 +184,10 @@ my %storage_fs; mount => sub { my ($live, $media) = @_; my @mount_options = ( - if_(get_media_setting($media, 'read_only'), "ro"), - grep { $_ } get_media_setting($media, 'mount_options'), + if_($media->get_media_setting('read_only'), "ro"), + grep { $_ } $media->get_media_setting('mount_options'), ); - 'nash-mount' . if_(@mount_options, " -o " . join(",", @mount_options)) . " -t " . get_media_setting($media, 'fs') . + 'nash-mount' . if_(@mount_options, " -o " . join(",", @mount_options)) . " -t " . $media->get_media_setting('fs') . " " . get_media_source_for_nash($media) . " $live->{prefix}{live}{mnt}$live->{prefix}{media}{mnt}"; }, }, @@ -203,7 +203,7 @@ my %storage_fs; mount => sub { my ($live, $media) = @_; my $fsck = "/bin/fsck.ext2"; - my $source = get_media_setting($media, 'source'); + my $source = $media->get_media_setting('source'); qq(sh -c '$fsck -a $source || $fsck -y $source'), $storage_fs{generic}{mount}->($live, $media); }, @@ -221,7 +221,7 @@ my %storage_fs; sub nls_modules { my ($live) = @_; - my $fs = get_media_setting($live->{media}, 'fs'); + my $fs = $live->{media}->get_media_setting('fs'); if_($fs eq 'vfat', 'nls_cp437'), #- default FAT codepage if_($fs !~ /^ext/, map { "nls_$_" } (map { "iso8859_$_" } 1..7, 9, 13..15), 'utf8'); } @@ -434,7 +434,7 @@ sub create_initrd_for_media { inst_initrd_bin($live->get_system_root, $initrd_tree, '/sbin/nash'); inst_initrd_bin($live->get_system_root, $initrd_tree, '/usr' . $lib_prefix . '/drakx-installer-binaries/probe-modules'); inst_initrd_bin($live->get_system_root, $initrd_tree, '/sbin/blockdev') - if get_media_setting($media, 'rereadpt'); + if $media->get_media_setting('rereadpt'); inst_initrd_bin($live->get_system_root, $initrd_tree, '/usr/bin/strace') if $live->{debug}; @@ -452,7 +452,7 @@ sub create_initrd_for_media { shift @l; symlink('busybox', $initrd_tree . "/bin/$_") foreach @l; - my $fs = get_media_setting($media, 'fs'); + my $fs = $media->get_media_setting('fs'); my @loop_types = uniq(map { $_->{type} } @{$live->{mount}{dirs}}); inst_initrd_bin($live->get_system_root, $initrd_tree, $_) foreach @{$storage_fs{$fs} && $storage_fs{$fs}{files} || []}, @@ -462,7 +462,7 @@ sub create_initrd_for_media { output_p($initrd_tree . '/etc/mtab', ''); my $loop_nb = 254; - my $rrpt_dev = get_media_setting($media, 'rereadpt'); + my $rrpt_dev = $media->get_media_setting('rereadpt'); require devices; devices::make($initrd_tree . "/dev/$_") foreach if_($rrpt_dev, $rrpt_dev), @@ -480,12 +480,12 @@ sub create_initrd_for_media { list_modules::load_dependencies($live->get_system_root . $kernel_root . "/modules.dep"); my ($storage_modules, $skipped) = partition { list_modules::modname2filename($_) } - uniq(map { modules::cond_mapping_24_26($_) } category2modules(get_media_setting($media, 'modules'))); + uniq(map { modules::cond_mapping_24_26($_) } category2modules($media->get_media_setting('modules'))); my ($extra_modules, $extra_missing) = partition { list_modules::modname2filename($_) } - category2modules(get_media_setting($media, 'media_modules')), + category2modules($media->get_media_setting('media_modules')), nls_modules($live), get_media_fs_module($media), - @{get_media_setting($media, 'extra_modules') || []}, + @{$media->get_media_setting('extra_modules') || []}, (map { @{$loop{$_}{modules} || []} } uniq(map { $_->{type} } @{$live->{mount}{dirs} || []})), ($live->{mount}{overlay} ? @{$overlay{$live->{mount}{overlay}}{modules} || []} : ()); @@ -538,9 +538,9 @@ sub create_initrd_for_media { sub create_initrd_scriptlet { my ($live, $media, @modules) = @_; my $target = $live->{prefix}{live}{mnt} . ($live->{mount}{root} || $live->{prefix}{media}{mnt}); - my $pre = get_media_setting($media, 'pre'); - my $fs = get_media_setting($media, 'fs'); - my $rrpt_dev = get_media_setting($media, 'rereadpt'); + my $pre = $media->get_media_setting('pre'); + my $fs = $media->get_media_setting('fs'); + my $rrpt_dev = $media->get_media_setting('rereadpt'); my $debug_shell = "sh -c 'if grep -q initrd_debug /proc/cmdline; then exec sh /dev/console 2>/dev/console; fi'"; my ($mount_first, $mount_last) = partition { !$loop{$_->{type}}{delay_mount} } grep { exists $loop{$_->{type}}{mount} } @{$live->{mount}{dirs} || []}; @@ -863,7 +863,7 @@ sub post_install_system { output_with_perm($live->get_system_root . '/etc/fstab', 0644, $live->{mount}{overlay} ? "none / $live->{mount}{overlay} rw 0 0\n" - : get_media_setting($live->{media}, 'source') . " / " . get_media_setting($live->{media}, 'fs') . " defaults 1 1\n" + : $live->{media}->get_media_setting('source') . " / " . $live->{media}->get_media_setting('fs') . " defaults 1 1\n" ); #- interactive mode can lead to race in initscripts @@ -1022,27 +1022,21 @@ sub list_selected_loopbacks { $live->{settings}{pack} ? @{$live->{packs}{$live->{settings}{pack}} || []} : ()); } -#- for user-customisable media setting, that can override storage setting -sub get_media_setting { - my ($media, $setting) = @_; - $media->{$setting} || $media->get_storage_setting($setting); -} - sub get_media_fs_module { my ($media) = @_; - my $fs = get_media_setting($media, 'fs'); + my $fs = $media->get_media_setting('fs'); $fs eq 'iso9660' ? 'isofs' : $fs eq 'ext2' ? @{[]} : $fs; } sub get_media_label { my ($media) = @_; - first(get_media_setting($media, 'source') =~ /^LABEL=(.*)$/); + first($media->get_media_setting('source') =~ /^LABEL=(.*)$/); } sub get_media_device { my ($live, $opts) = @_; return $opts->{device} if $opts->{device}; - my $label = get_media_label($live->{media}) or return get_media_setting($live->{media}, 'source'); + my $label = get_media_label($live->{media}) or return $live->{media}->get_media_setting('source'); my $device = chomp_(`readlink -f /dev/disk/by-label/$label`) or die "unable to find device for /dev/disk/by-label/$label\n"; $device; @@ -1058,9 +1052,9 @@ sub get_media_source_for_nash { my ($media) = @_; my $label = get_media_label($media); #- strip vfat labels to 11 chars and upper-case it - $label && get_media_setting($media, 'fs') eq 'vfat' ? + $label && $media->get_media_setting('fs') eq 'vfat' ? 'LABEL=' . uc(substr($label, 0, 11)) : - get_media_setting($media, 'source'); + $media->get_media_setting('source'); } sub prepare_bootloader { @@ -1285,7 +1279,7 @@ sub create_disk_master { directory_usage($live->get_builddir . $live->{prefix}{build}{boot})) : directory_usage($live->get_system_root); - my $loop = allocate_master($dest, 500000000 + $part_size, get_media_setting($live->{media}, 'fs')); + my $loop = allocate_master($dest, 500000000 + $part_size, $live->{media}->get_media_setting('fs')); local $opts->{device} = $loop; local $opts->{disk_device} = $dest; record_master($live, $opts); @@ -1319,7 +1313,7 @@ sub format_usb_device { my ($live, $opts) = @_; my $device = get_media_device($live, $opts); maybe_umount_device($device); - device_mkfs($device, get_media_setting($live->{media}, 'fs')) + device_mkfs($device, $live->{media}->get_media_setting('fs')) or die "unable to format device $device\n"; } @@ -1421,7 +1415,7 @@ sub record_usb_master { 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); + set_device_label($opts->{device}, $media->get_media_setting('fs'), $label); } my $device = get_media_device($live, $opts) or die "unable to find recording device (missing label? try with --device )\n"; @@ -1471,7 +1465,7 @@ sub record_usb_master { run_('umount', $live->{mnt}); maybe_umount_device($device); - if (get_media_setting($media, 'fs') eq 'vfat') { + if ($media->get_media_setting('fs') eq 'vfat') { MDV::Draklive::Utils::mtools_run_('mattrib', '+h', '-i', $device, '::' . $_) foreach @hidden_files; MDV::Draklive::Utils::mtools_run_('mattrib', '+r', '+s', '-/', '-i', $device, '::' . $_) foreach $media_boot, $media_loopbacks; @@ -1485,7 +1479,7 @@ sub record_harddisk_master { 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); + set_device_label($opts->{device}, $media->get_media_setting('fs'), $label); } my $device = get_media_device($live, $opts) or die "unable to find recording device (missing label? try with --device )\n"; @@ -1605,7 +1599,7 @@ sub create_disk_image { sub create_image { my ($live) = @_; - if (my $create = get_media_setting($live->{media}, 'image')) { + if (my $create = $live->{media}->get_media_setting('image')) { $create->($live); } else { warn "not implemented yet\n"; @@ -1677,7 +1671,7 @@ sub record_usb_replicator { sub create_replicator { my ($live) = @_; - if (my $create = get_media_setting($live->{replicator}{media}, 'replicator')) { + if (my $create = $live->{replicator}{media}->get_media_setting('replicator')) { $create->($live); } else { warn "not implemented yet\n"; diff --git a/lib/MDV/Draklive/Media.pm b/lib/MDV/Draklive/Media.pm index e3fa1ac..baf1d21 100644 --- a/lib/MDV/Draklive/Media.pm +++ b/lib/MDV/Draklive/Media.pm @@ -17,4 +17,10 @@ sub get_boot_setting { $opts->{boot} ? $storage{$opts->{boot}}{$setting} : get_media_setting($media, $setting); } +#- for user-customisable media setting, that can override storage setting +sub get_media_setting { + my ($media, $setting) = @_; + $media->{$setting} || $media->get_storage_setting($setting); +} + 1; -- cgit v1.2.1