package install_steps_stdio; use diagnostics; use strict; use vars qw(@ISA); @ISA = qw(install_steps_interactive interactive_stdio); use common qw(:common); use devices; use run_program; use interactive_stdio; use install_steps_interactive; use install_any; use log; 1; sub enteringStep($$$) { my ($o, $step) = @_; print _("Entering step `%s'\n", $o->{steps}{$step}{text}); } sub leavingStep { my ($o) = @_; print "--------\n"; } sub installPackages { my $o = shift; 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 setRootPassword($) { my ($o) = @_; my (%w); do { $w{password} and print "You must enter the same password, please try again\n"; print "Password: "; $w{password} = $o->readln(); print "Password (again for confirmation): "; } until ($w{password} eq $o->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} = $o->readln() or return; do { $w{password} and print "You must enter the same password, please try again\n"; print "Password: "; $w{password} = $o->readln(); print "Password (again for confirmation): "; } until ($w{password} eq $o->readln()); print "Real name: "; $w{realname} = $o->readln(); $w{shell} = $o->ask_from_list('', 'Shell', [ install_any::shells($o) ], "/bin/bash"); $o->{default}{user} = { map { $_ => $w{$_}->get_text } qw(name password realname shell) }; $o->SUPER::addUser; }