package MDV::Draklive::Media; use MDK::Common; use MDV::Draklive::Storage; sub get_initrd_path { my ($media) = @_; '/' . $media->{storage} . '/initrd.gz'; } #- mainly for storage-specific subroutines sub get_storage_setting { my ($media, $setting) = @_; $MDV::Draklive::Storage::storage_types{$media->{storage}}{$setting}; } #- for actions that support an optional boot storage type sub get_boot_setting { my ($media, $setting, $opts) = @_; $opts->{boot} ? $MDV::Draklive::Storage::storage_types{$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); } sub get_media_fs_module { my ($media) = @_; my $fs = $media->get_media_setting('fs'); $fs eq 'iso9660' ? 'isofs' : $fs eq 'ext2' ? @{[]} : $fs; } sub get_media_label { my ($media) = @_; first($media->get_media_setting('source') =~ /^LABEL=(.*)$/); } sub get_media_source_for_nash { my ($media) = @_; my $label = $media->get_media_label; #- strip vfat labels to 11 chars and upper-case it $label && $media->get_media_setting('fs') eq 'vfat' ? 'LABEL=' . uc(substr($label, 0, 11)) : $media->get_media_setting('source'); } 1;