diff options
author | Olivier Blin <oblin@mandriva.com> | 2008-10-29 00:57:05 +0000 |
---|---|---|
committer | Olivier Blin <oblin@mandriva.com> | 2008-10-29 00:57:05 +0000 |
commit | 14da6683acda76b094c886508c79dc78fbb5be11 (patch) | |
tree | 2dbf7745bdf706e28372300306a5168ac607bee8 | |
parent | d482ef7beb82ae4144dc3155a17fa7d689e394ba (diff) | |
download | draklive-14da6683acda76b094c886508c79dc78fbb5be11.tar draklive-14da6683acda76b094c886508c79dc78fbb5be11.tar.gz draklive-14da6683acda76b094c886508c79dc78fbb5be11.tar.bz2 draklive-14da6683acda76b094c886508c79dc78fbb5be11.tar.xz draklive-14da6683acda76b094c886508c79dc78fbb5be11.zip |
extract predefined and custom mounts/fs in MDV::Draklive::Mounts and MDV::Draklive::CustomMedia modules (breaks config files)
-rwxr-xr-x | draklive | 104 | ||||
-rw-r--r-- | lib/MDV/Draklive/CustomMedia.pm | 14 | ||||
-rw-r--r-- | lib/MDV/Draklive/Mounts.pm | 87 |
3 files changed, 103 insertions, 102 deletions
@@ -39,108 +39,8 @@ use MDV::Draklive::Media; use MDV::Draklive::Progress; use MDV::Draklive::Loopback; use MDV::Draklive::Initrd; - -my $dir_distrib_sqfs = { - mountpoint => '/distrib', - type => 'squashfs', - path => '/distrib', - # perl -MMDK::Common -e 'print map_index { (32767 - $::i) . " $_" } grep { !m,^/(?:dev|proc|sys|live/distrib), } uniq(<>)' < bootlog.list > config/distrib.sort - sort => "config/distrib.sort", - build_from => '/', -}; -my $dir_memory = { - mountpoint => '/memory', - type => 'tmpfs', -}; - -my $dir_modules = { - mountpoint => '/modules', - type => 'modules', - path => '/modules', - list => 'modules.lst', -}; - -# this is not unused (it can be used from config file): -my %predefined = ( - mounts => { - simple_union => { - root => '/union', - overlay => 'unionfs', - dirs => [ - { - mountpoint => '/media', - type => 'plain', - }, - $dir_memory, - ], - }, - squash_rw_union => { - root => '/union', - overlay => 'unionfs', - dirs => [ - $dir_distrib_sqfs, - { - mountpoint => '/media/system', - type => 'plain', - }, - ], - }, - }, -); - -# this is not unused (it can be used from config file): -my %custom = ( - fs => { - nfs => sub { - my ($module, $client, $path) = @_; - ( - fs => 'nfs', - modules => 'nfs', - extra_modules => [ $module ], - pre => "ifconfig eth0 $client up", - source => $path, - ); - }, - }, - mounts => { - volatile_squash_union => sub { - my ($o_modules) = @_; - { - root => '/union', - overlay => 'unionfs', - dirs => [ - $dir_distrib_sqfs, - if_($o_modules, $dir_modules), - $dir_memory, - ], - }; - }, - squash_union => sub { - my ($default_size, $o_min_size, $o_modules) = @_; - { - root => '/union', - overlay => 'unionfs', - dirs => [ - $dir_distrib_sqfs, - if_($o_modules, $dir_modules), - { - mountpoint => '/system', - type => 'loopfs', - pre_allocate => $default_size, - if_(defined $o_min_size, min_size => $o_min_size), - fs => 'ext2', - path => '/system' - }, - { - mountpoint => '/system', - type => 'tmpfs', - fallback => 1, - }, - ], - }; - }, - }, -); +use MDV::Draklive::Mounts; +use MDV::Draklive::CustomMedia; my %storage = ( cdrom => { diff --git a/lib/MDV/Draklive/CustomMedia.pm b/lib/MDV/Draklive/CustomMedia.pm new file mode 100644 index 0000000..21750cd --- /dev/null +++ b/lib/MDV/Draklive/CustomMedia.pm @@ -0,0 +1,14 @@ +package MDV::Draklive::CustomMedia; + +sub nfs_media { + my ($module, $client, $path) = @_; + ( + fs => 'nfs', + modules => 'nfs', + extra_modules => [ $module ], + pre => "ifconfig eth0 $client up", + source => $path, + ); +} + +1; diff --git a/lib/MDV/Draklive/Mounts.pm b/lib/MDV/Draklive/Mounts.pm new file mode 100644 index 0000000..f7d630f --- /dev/null +++ b/lib/MDV/Draklive/Mounts.pm @@ -0,0 +1,87 @@ +package MDV::Draklive::Mounts; + +use MDK::Common; + +my $_dir_distrib_sqfs = { + mountpoint => '/distrib', + type => 'squashfs', + path => '/distrib', + # perl -MMDK::Common -e 'print map_index { (32767 - $::i) . " $_" } grep { !m,^/(?:dev|proc|sys|live/distrib), } uniq(<>)' < bootlog.list > config/distrib.sort + sort => "config/distrib.sort", + build_from => '/', +}; +my $_dir_memory = { + mountpoint => '/memory', + type => 'tmpfs', +}; + +my $_dir_modules = { + mountpoint => '/modules', + type => 'modules', + path => '/modules', + list => 'modules.lst', +}; + +our $simple_union = { + root => '/union', + overlay => 'unionfs', + dirs => [ + { + mountpoint => '/media', + type => 'plain', + }, + $_dir_memory, + ], + }; + +our $squash_rw_union = { + root => '/union', + overlay => 'unionfs', + dirs => [ + $_dir_distrib_sqfs, + { + mountpoint => '/media/system', + type => 'plain', + }, + ], + }; + +sub volatile_squash_union { + my ($o_modules) = @_; + { + root => '/union', + overlay => 'unionfs', + dirs => [ + $_dir_distrib_sqfs, + if_($o_modules, $_dir_modules), + $_dir_memory, + ], + }; +} + +sub squash_union { + my ($default_size, $o_min_size, $o_modules) = @_; + { + root => '/union', + overlay => 'unionfs', + dirs => [ + $_dir_distrib_sqfs, + if_($o_modules, $_dir_modules), + { + mountpoint => '/system', + type => 'loopfs', + pre_allocate => $default_size, + if_(defined $o_min_size, min_size => $o_min_size), + fs => 'ext2', + path => '/system' + }, + { + mountpoint => '/system', + type => 'tmpfs', + fallback => 1, + }, + ], + }; +} + +1; |