summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2008-10-29 00:57:05 +0000
committerOlivier Blin <oblin@mandriva.com>2008-10-29 00:57:05 +0000
commit14da6683acda76b094c886508c79dc78fbb5be11 (patch)
tree2dbf7745bdf706e28372300306a5168ac607bee8
parentd482ef7beb82ae4144dc3155a17fa7d689e394ba (diff)
downloaddraklive-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-xdraklive104
-rw-r--r--lib/MDV/Draklive/CustomMedia.pm14
-rw-r--r--lib/MDV/Draklive/Mounts.pm87
3 files changed, 103 insertions, 102 deletions
diff --git a/draklive b/draklive
index 3631b00..59cbacb 100755
--- a/draklive
+++ b/draklive
@@ -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;