diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2001-08-17 17:09:25 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2001-08-17 17:09:25 +0000 |
commit | fb99b425049ff55d76b863c9357d58d5925a3c3d (patch) | |
tree | 9d459608af63b873636c95e108db3b106102c93b /perl-install/install_interactive.pm | |
parent | b68d5db11e89565538dc3323740ef0e665c85607 (diff) | |
download | drakx-backup-do-not-use-fb99b425049ff55d76b863c9357d58d5925a3c3d.tar drakx-backup-do-not-use-fb99b425049ff55d76b863c9357d58d5925a3c3d.tar.gz drakx-backup-do-not-use-fb99b425049ff55d76b863c9357d58d5925a3c3d.tar.bz2 drakx-backup-do-not-use-fb99b425049ff55d76b863c9357d58d5925a3c3d.tar.xz drakx-backup-do-not-use-fb99b425049ff55d76b863c9357d58d5925a3c3d.zip |
a hell lot of cleanup/rewrite:
* diskdrake_interactive created, diskdrake is now interactive aware
* added some documentation about the structure used for partitioning
* all_hds now contain the various hds, lvm, raid
* cleanup the isLVM, isRAID and alike functions
* field {type} in detect_devices is now {media_type}
* detect_devices::floppies is now floppies_dev
* removed old function prototypes
Diffstat (limited to 'perl-install/install_interactive.pm')
-rw-r--r-- | perl-install/install_interactive.pm | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/perl-install/install_interactive.pm b/perl-install/install_interactive.pm index 24064d9ea..214b8546f 100644 --- a/perl-install/install_interactive.pm +++ b/perl-install/install_interactive.pm @@ -25,16 +25,16 @@ You can find some information about them at: %s", join(", ", @l))) if @l; } sub partition_with_diskdrake { - my ($o, $hds, $nowizard) = @_; + my ($o, $all_hds, $nowizard) = @_; my $ok; $o->set_help('partition_with_diskdrake'); do { $ok = 1; require diskdrake; - diskdrake::main($hds, $o->{lvms}, $o->{raid}, interactive_gtk->new, $nowizard); + diskdrake::main(interactive_gtk->new, $all_hds, $nowizard); delete $o->{wizard} and return partitionWizard($o, 'nodiskdrake'); - my @fstab = fsedit::get_fstab(@$hds, @{$o->{lvms}}, $o->{raid}); + my @fstab = fsedit::get_all_fstab($all_hds); unless (fsedit::get_root_(\@fstab)) { $ok = 0; @@ -46,7 +46,7 @@ Then choose action ``Mount point'' and set it to `/'"), 1) or return; $o->ask_warn('', _("You must have a swap partition")), $ok=0 if !$::expert; $ok &&= $::expert || $o->ask_okcancel('', _("You don't have a swap partition\n\nContinue anyway?")); } - if (arch() =~ /ia64/ && !fsedit::has_mntpoint("/boot/efi", $hds)) { + if (arch() =~ /ia64/ && !fsedit::has_mntpoint("/boot/efi", $all_hds)) { $o->ask_warn('', _("You must have a FAT partition mounted in /boot/efi")); $ok = ''; } @@ -55,7 +55,8 @@ Then choose action ``Mount point'' and set it to `/'"), 1) or return; } sub partitionWizardSolutions { - my ($o, $hds, $fstab, $readonly) = @_; + my ($o, $all_hds, $fstab, $readonly) = @_; + my $hds = $all_hds->{hds}; my @wizlog; my (@solutions, %solutions); @@ -69,7 +70,7 @@ sub partitionWizardSolutions { my @good_hds = grep { partition_table::can_raw_add($_) } @$hds; if (fsedit::free_space(@good_hds) > $min_linux and !$readonly) { - $solutions{free_space} = [ 20, _("Use free space"), sub { fsedit::auto_allocate($hds); 1 } ] + $solutions{free_space} = [ 20, _("Use free space"), sub { fsedit::auto_allocate($all_hds); 1 } ] } else { push @wizlog, _("Not enough free space to allocate new partitions") . ": " . (@good_hds ? @@ -91,7 +92,7 @@ sub partitionWizardSolutions { [ -10 - @fats, _("Use the Windows partition for loopback"), sub { my ($s_root, $s_swap); - my $part = $o->ask_from_listf('', _("Which partition do you want to use for Linux4Win?"), \&partition_table_raw::description, \@ok_forloopback) or return; + my $part = $o->ask_from_listf('', _("Which partition do you want to use for Linux4Win?"), \&partition_table::description, \@ok_forloopback) or return; $max_swap = $min_swap + 1 if $part->{free} - $max_swap < $min_linux; $o->ask_from_entries_refH('', _("Choose the sizes"), [ { label => _("Root partition size in MB: "), val => \$s_root, min => $min_linux >> 11, max => min($part->{free} - $max_swap, $max_linux) >> 11, type => 'range' }, @@ -106,7 +107,7 @@ sub partitionWizardSolutions { [ 6 - @fats, _("Use the free space on the Windows partition"), sub { $o->set_help('resizeFATChoose'); - my $part = $o->ask_from_listf('', _("Which partition do you want to resize?"), \&partition_table_raw::description, \@ok_forloopback) or return; + my $part = $o->ask_from_listf('', _("Which partition do you want to resize?"), \&partition_table::description, \@ok_forloopback) or return; $o->set_help('resizeFATWait'); my $w = $o->wait_message(_("Resizing"), _("Computing Windows filesystem bounds")); require resize_fat::main; @@ -125,7 +126,7 @@ When sure, press Ok.")) or return; my $size = $part->{size}; $o->ask_from_entries_refH('', _("Which size do you want to keep for windows on"), [ - { label => _("partition %s", partition_table_raw::description($part)), val => \$size, min => $min_win >> 11, max => ($part->{size} - $min_linux - $min_swap) >> 11, type => 'range' }, + { label => _("partition %s", partition_table::description($part)), val => \$size, min => $min_win >> 11, max => ($part->{size} - $min_linux - $min_swap) >> 11, type => 'range' }, ]) or return; $size <<= 11; @@ -136,13 +137,13 @@ When sure, press Ok.")) or return; $part->{size} = $size; $part->{isFormatted} = 1; - my ($hd) = grep { $_->{device} eq $part->{rootDevice} } @$hds; + my ($hd) = fsedit::part2hd($part, $all_hds); $hd->{isDirty} = $hd->{needKernelReread} = 1; $hd->adjustEnd($part); partition_table::adjust_local_extended($hd, $part); partition_table::adjust_main_extended($hd); - fsedit::auto_allocate($hds); + fsedit::auto_allocate($all_hds); 1; } ] if !$readonly; } else { @@ -156,17 +157,17 @@ When sure, press Ok.")) or return; sub { $o->set_help('takeOverHdChoose'); my $hd = $o->ask_from_listf('', _("You have more than one hard drive, which one do you install linux on?"), - \&partition_table_raw::description, $hds) or return; + \&partition_table::description, $hds) or return; $o->set_help('takeOverHdConfirm'); - $o->ask_okcancel('', _("ALL existing partitions and their data will be lost on drive %s", partition_table_raw::description($hd))) or return; + $o->ask_okcancel('', _("ALL existing partitions and their data will be lost on drive %s", partition_table::description($hd))) or return; partition_table_raw::zero_MBR($hd); - fsedit::auto_allocate($hds); + fsedit::auto_allocate($all_hds); 1; } ]; } if (!$readonly && $o->isa('interactive_gtk')) { #- diskdrake only available in gtk for now - $solutions{diskdrake} = [ 0, _("Custom disk partitioning"), sub { partition_with_diskdrake($o, $hds, 'nowizard') } ]; + $solutions{diskdrake} = [ 0, _("Custom disk partitioning"), sub { partition_with_diskdrake($o, $all_hds, 'nowizard') } ]; } $solutions{fdisk} = @@ -174,7 +175,7 @@ When sure, press Ok.")) or return; $o->enter_console; foreach (@$hds) { print "\n" x 10, _("You can now partition %s. -When you are done, don't forget to save using `w'", partition_table_raw::description($_)); +When you are done, don't forget to save using `w'", partition_table::description($_)); print "\n\n"; my $pid = 0; if (arch() =~ /ppc/) { @@ -197,7 +198,7 @@ sub partitionWizard { $o->set_help('doPartitionDisks'); - my %solutions = partitionWizardSolutions($o, $o->{hds}, $o->{fstab}, $o->{partitioning}{readonly}); + my %solutions = partitionWizardSolutions($o, $o->{all_hds}, $o->{fstab}, $o->{partitioning}{readonly}); if ($o->{lnx4win}) { if ($solutions{loopback}) { %solutions = (loopback => $solutions{loopback}); |