diff options
Diffstat (limited to 'lib/MDV/Draklive/Media.pm')
-rw-r--r-- | lib/MDV/Draklive/Media.pm | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/lib/MDV/Draklive/Media.pm b/lib/MDV/Draklive/Media.pm deleted file mode 100644 index 8487e29..0000000 --- a/lib/MDV/Draklive/Media.pm +++ /dev/null @@ -1,88 +0,0 @@ -package MDV::Draklive::Media; - -use MDK::Common; -use MDV::Draklive::Storage; -use POSIX; -use common; - -sub new { - my ($media) = @_; - - bless $media, 'MDV::Draklive::Media'; - - $media->{partitions} ||= [ { mntpoint => '/' } ]; - - foreach my $mntpoint (qw(/ OEM_RESCUE)) { - my $part = find { $_->{mntpoint} eq $mntpoint } @{$media->{partitions}}; - $part->{fs_type} ||= $media->get_media_setting('fs'); - if (my $label = $mntpoint eq '/' && $media->get_media_label) { - $part->{device_LABEL} ||= $label; - } - } - - $media->{boot_entries} ||= [ '' => '' ]; - - $media; -} - -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'); -} - -sub find_partition_index { - my ($media, $mntpoint) = @_; - eval { find_index { $_->{mntpoint} eq $mntpoint } @{$media->{partitions}} }; -} - -sub find_boot_partition_index { - my ($media) = @_; - $media->find_partition_index('/boot') || $media->find_partition_index('/'); -} - -sub supplement_slash_size { - my ($media, $total_size) = @_; - my $correction = 1.2; - my $slash = find { $_->{mntpoint} eq '/' } @{$media->{partitions}}; - $slash->{size} ||= POSIX::ceil($total_size * $correction / $common::SECTORSIZE); -} - -1; |