diff options
Diffstat (limited to 'perl-install/install_steps_stdio.pm')
-rw-r--r-- | perl-install/install_steps_stdio.pm | 203 |
1 files changed, 24 insertions, 179 deletions
diff --git a/perl-install/install_steps_stdio.pm b/perl-install/install_steps_stdio.pm index c752e62df..1ef8b83fa 100644 --- a/perl-install/install_steps_stdio.pm +++ b/perl-install/install_steps_stdio.pm @@ -1,196 +1,41 @@ -package install_steps_stdio; +package install_steps_stdio; # $Id$ use diagnostics; use strict; use vars qw(@ISA); -@ISA = qw(install_steps); +@ISA = qw(install_steps_interactive interactive_stdio); use common qw(:common); -use partition_table qw(:types); -use devices; -use run_program; -use install_steps; -use install_any; -use diskdrake; +use interactive_stdio; +use install_steps_interactive; use lang; -use log; -1; - -sub chooseLanguage($) { - my $lang = ask_from_list('Language', 'Which language do you want?', [ lang::list() ]); - run_program::run('xmodmap', "/usr/bin/$lang.map"); - $lang; -} - -sub selectInstallOrUpgrade($) { - ask_yesorno('Install/Upgrade', 'Do you want to upgrade an already installed Mandrake?'); -} - -sub rebootNeeded($) { - my ($o) = @_; - ask_warn('', "You need to reboot for the partition table modifications to take place"); - $o->SUPER::rebootNeeded; -} - -sub choosePartitionsToFormat($$) { - my ($o, $fstab) = @_; - my @l = grep { $_->{mntpoint} && (isExt2($_) || isSwap($_)) } @$fstab; - my @r = ask_many_from_list('', "Choose the partitions you want to format", - [ map { $_->{mntpoint} } @l ], - [ map { $_->{notFormatted} } @l ]); - for (my $i = 0; $i < @l; $i++) { - $l[$i]->{toFormat} = $r[$i]; - } -} +sub new($$) { + my ($type, $o) = @_; -sub choosePackages($$$) { - my ($o, $packages, $comps) = @_; - my @comps = values %$comps; - my @r = ask_many_from_list('', - "Choose the packages you want to install", - [ map { $_->{name} } @comps ], - [ map { $_->{selected} } @comps ]); - - for (my $i = 0; $i < @comps; $i++) { - $comps[$i]->{selected} = $r[$i]; - } + $o->{partitioning}{readonly} = 1; #- needed til diskdrake is graphic only... + (bless {}, ref $type || $type)->SUPER::new($o); } -sub installPackages { - my $o = shift; - - $::testing and exit 0; - - my $old = \&log::ld; - local *log::ld = sub { - my $m = shift; - if ($m =~ /^starting installing/) { - my $name = first($_[0] =~ m|([^/]*)-.+?-|); - print("installing package $name"); - } else { goto $old } - }; - $o->SUPER::installPackages(@_); +sub enteringStep { + my ($o, $step) = @_; + print _("Entering step `%s'\n", translate($o->{steps}{$step}{text})); + $o->SUPER::enteringStep($step); } - - -sub setRootPassword($) { - my ($o) = @_; - - my (%w); - do { - $w{password} and print "You must enter the same password, please try again\n"; - print "Password: "; $w{password} = readln(); - print "Password (again for confirmation): "; - } until ($w{password} eq readln()); - - $o->{default}->{rootPassword} = $w{password}; - $o->SUPER::setRootPassword; -} - -sub addUser($) { - my ($o) = @_; - my %w; - print "\nCreating a normal user account:\n"; - print "Name: "; $w{name} = readln() or return; - do { - $w{password} and print "You must enter the same password, please try again\n"; - print "Password: "; $w{password} = readln(); - print "Password (again for confirmation): "; - } until ($w{password} eq readln()); - print "Real name: "; $w{realname} = readln(); - - $w{shell} = ask_from_list('', 'Shell', $o->{default}->{shells}); - - $o->{default}->{user} = { map { $_ => $w{$_}->get_text } qw(name password realname shell) }; - $o->SUPER::addUser; -} - -sub createBootdisk($) { - my ($o) = @_; - - $o->SUPER::createBootdisk if - $o->{default}->{mkbootdisk} = ask_yesorno('', -"A custom bootdisk provides a way of booting into your Linux system without -depending on the normal bootloader. This is useful if you don't want to install -lilo on your system, or another operating system removes lilo, or lilo doesn't -work with your hardware configuration. A custom bootdisk can also be used with -the Mandrake rescue image, making it much easier to recover from severe system -failures. Would you like to create a bootdisk for your system?"); +sub leavingStep { + my ($o, $step) = @_; + $o->SUPER::leavingStep($step); + print "--------\n"; } -sub exitInstall { - ask_warn('', -"Congratulations, installation is complete. -Remove the boot media and press return to reboot. -For information on fixes which are available for this release of Linux Mandrake, -consult the Errata available from http://www.linux-mandrake.com/. -Information on configuring your system is available in the post -install chapter of the Official Linux Mandrake User's Guide."); -} - - - -sub readln { - my $l = <STDIN>; - chomp $l; - $l; -} - -sub ask_warn { - my ($title, @msgs) = @_; - print "----------\n", map { "$_\n" } @_; - print "Press enter"; readln(); -} - -sub ask_yesorno { - my ($title, @msgs) = @_; - print "----------\n", join("\n", @_); - print " (yes/No) "; readln() =~ /y/i; - -} - -sub check_it { - my ($i, $n) = @_; - $i =~ /^\s*\d+\s*$/ && 1 <= $i && $i <= $n -} - -sub ask_from_list { - my ($title, @msgs) = @_; - my $list = pop @msgs; - print "----------\n", map { "$_\n" } @msgs; - my $n = 0; foreach (@$list) { $n++; print "$n: $_\n"; } - my $i; - do { - defined $i and print "Bad choice, try again\n"; - print "Your choice? (1/$n) "; - $i = readln(); - } until (check_it($i, $n)); - $list->[$i - 1]; -} - -sub ask_many_from_list { - my ($title, @msgs) = @_; - my $default = pop @msgs; - my $list = pop @msgs; - my @defaults; - print "----------\n", map { "$_\n" } @msgs; - my $n = 0; foreach (@$list) { - $n++; - print "$n: $_\n"; - push @defaults, $n if $default->[$n - 1]; - } - my $i; - TRY_AGAIN: - defined $i and print "Bad choice, try again\n"; - print "Your choice? (default ", join(',', @defaults), " enter `none' for none) "; - $i = readln(); - my @t = split ',', $i; - foreach (@t) { check_it($_, $n) or goto TRY_AGAIN } - - my @rr = (0) x @$list; - foreach (@t) { $rr[$_ - 1] = 1; } - @rr; +#-###################################################################################### +#- Steps Functions +#-###################################################################################### +sub selectLanguage { + my ($o, $first_time) = @_; + $o->SUPER::selectLanguage($first_time); + lang::load_console_font($o->{lang}); } +1; |