summaryrefslogtreecommitdiffstats
path: root/draklive
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2009-07-30 17:56:44 +0000
committerOlivier Blin <oblin@mandriva.com>2009-07-30 17:56:44 +0000
commit4fe3fa0731df002a22320458e5e55c5cc1ec5318 (patch)
treeda32b6f5290e8924ecc28f4860d0922f1ff4f46b /draklive
parentb0521d1942ef977c490de319d0121a8770f074a1 (diff)
downloaddrakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar
drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar.gz
drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar.bz2
drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar.xz
drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.zip
move / size and fs type pre-computing in a new supplement_partitions media method
Diffstat (limited to 'draklive')
-rwxr-xr-xdraklive19
1 files changed, 12 insertions, 7 deletions
diff --git a/draklive b/draklive
index b9ec914..2061781 100755
--- a/draklive
+++ b/draklive
@@ -678,7 +678,7 @@ sub allocate_partition {
}
sub allocate_master {
- my ($live, $media, $dest, $size, $fs) = @_;
+ my ($live, $media, $dest, $size) = @_;
mkdir_p(dirname($dest));
my $geom = {
heads => 16,
@@ -694,7 +694,7 @@ sub allocate_master {
MDV::Draklive::Utils::device_allocate_file($dest, $disk_size);
my $slash = find { $_->{mntpoint} eq '/' } @{$media->{partitions}};
- $slash->{fs_type} = $fs;
+ my $fs = $slash->{fs_type};
#- FIXME: use fsedit::allocatePartitions and $media->{partitions}?
# foreach (@{$media->{partitions}}) { # set pt_type }
@@ -756,6 +756,9 @@ EOF
sub create_disk_master {
my ($live, $opts) = @_;
+
+ $live->{media}->supplement_partitions(directory_usage($live->get_system_root));
+
my $dest = get_disk_master_path($live);
my $disk_size = @{$live->{mount}{dirs} || []} ?
#- dumb guess, a bit too large, and valid for FAT only
@@ -763,10 +766,9 @@ sub create_disk_master {
directory_usage($live->get_builddir . $live->{prefix}{build}{boot}) +
directory_usage($live->get_builddir . $live->{prefix}{build}{files}) +
70000000) :
- directory_usage($live->get_system_root) + 200000000 + fold_left { $::a + $::b } map { $_->{size} * $common::SECTORSIZE } @{$live->{media}{partitions}};
- #- FIXME: use size from $live->{media}{partitions} for / too
+ 200000000 + fold_left { $::a + $::b } map { $_->{size} * $common::SECTORSIZE } @{$live->{media}{partitions}};
- my @loops = allocate_master($live, $live->{media}, $dest, $disk_size, $live->{media}->get_media_setting('fs'));
+ my @loops = allocate_master($live, $live->{media}, $dest, $disk_size);
my $slash_idx = $live->{media}->find_partition_index('/');
local $opts->{device} = $loops[$slash_idx];
local $opts->{disk_device} = $dest;
@@ -1155,8 +1157,11 @@ sub create_usb_replicator {
my ($live) = @_;
my $dest = get_disk_replicator_path($live);
my %files = get_disk_replicator_files($live);
- my $size = fold_left { $::a + $::b } map { directory_usage($_, 'apparent') } keys(%files);
- my @loops = allocate_master($live, $live->{replicator}{media}, $dest, 8000000 + $size, 'vfat');
+
+ my $size = 8000000 + fold_left { $::a + $::b } map { directory_usage($_, 'apparent') } keys(%files);
+ $live->{replicator}{media}->supplement_partitions($size);
+
+ my @loops = allocate_master($live, $live->{replicator}{media}, $dest, $size);
my $slash_idx = $live->{replicator}{media}->find_partition_index('/');
my $opts = { device => $loops[$slash_idx], disk_device => $dest, append => $live->{replicator}{append} };
record_usb_replicator($live, $opts);