diff -ruN e-smith-base-5.4.0.two/root/usr/share/perl5/vendor_perl/esmith/console/perform_restore.pm e-smith-base-5.4.0/root/usr/share/perl5/vendor_perl/esmith/console/perform_restore.pm --- e-smith-base-5.4.0.two/root/usr/share/perl5/vendor_perl/esmith/console/perform_restore.pm 2014-03-06 21:05:43.000000000 -0800 +++ e-smith-base-5.4.0/root/usr/share/perl5/vendor_perl/esmith/console/perform_restore.pm 2014-03-06 21:51:02.000000000 -0800 @@ -33,7 +33,7 @@ my ($rc, $choice) = $console->yesno_page ( title => gettext("Restore From Backup"), - defaultno => 1, + defaultno => 1, text => gettext("Do you wish to restore from backup?"), ); @@ -71,31 +71,31 @@ } unless ($dirs[0]) { - ($rc, $choice) = $console->message_page - ( - title => gettext("Backup medium not found"), - right => "Try again", - text => - gettext("No removable media or device found"), - ); - goto INITIATE_RESTORE; + ($rc, $choice) = $console->message_page + ( + title => gettext("Backup medium not found"), + right => "Try again", + text => + gettext("No removable media or device found"), + ); + goto INITIATE_RESTORE; } my $device = $dirs[0]; if (defined $dirs[1]) { - my $count=1; -# FIXME use better regexp - my @args = map { /(.*)/; $count++ . '.' => $1 } @dirs; - - my ($rc, $choice) = $console->menu_page - ( - title => gettext("Choose device to restore from"), - text => gettext("Please select which device contains the backup file you wish to restore from."), - argsref => \@args, - left => gettext("Cancel"), - right => gettext("OK"), + my $count=1; + # FIXME use better regexp + my @args = map { /(.*)/; $count++ . '.' => $1 } @dirs; + + my ($rc, $choice) = $console->menu_page + ( + title => gettext("Choose device to restore from"), + text => gettext("Please select which device contains the backup file you wish to restore from."), + argsref => \@args, + left => gettext("Cancel"), + right => gettext("OK"), ); - goto INITIATE_RESTORE unless ($rc == 0); + goto INITIATE_RESTORE unless ($rc == 0); my %args_hash = ( @args ); $device = $args_hash{$choice}; } @@ -105,14 +105,14 @@ unless (-f "/mnt/bootstrap-console-backup/smeserver.tgz") { system("/bin/umount", "$device"); - ($rc, $choice) = $console->message_page - ( - title => gettext("Backup file not found"), - right => "Try again", - text => - gettext("No backup file found"), - ); - goto INITIATE_RESTORE; + ($rc, $choice) = $console->message_page + ( + title => gettext("Backup file not found"), + right => "Try again", + text => + gettext("No backup file found"), + ); + goto INITIATE_RESTORE; } use File::stat; my $st = stat("/mnt/bootstrap-console-backup/smeserver.tgz"); @@ -133,23 +133,25 @@ } system("/sbin/e-smith/signal-event", "pre-restore"); system("(cd / ; cat /mnt/bootstrap-console-backup/smeserver.tgz | - pv -n -s $size | - gunzip | - tar xf - > /dev/null ) 2>&1 | - dialog --backtitle 'Restoring data' --guage 'Progress' 7 70"); + pv -n -s $size | + gunzip | + tar xf - > /dev/null ) 2>&1 | + dialog --backtitle 'Restoring data' --guage 'Progress' 7 70"); $db->set_prop("bootstrap-console", "ForceSave", "yes"); system("/bin/umount", "$device"); system("/etc/init.d/haldaemon", "stop"); system("/etc/init.d/messagebus", "stop"); rmdir("/mnt/bootstrap-console-backup"); system("/sbin/e-smith/signal-event", "post-upgrade"); + return; } # Determine if this server is a fresh install for restore from backup +# Earlier the expression used was ($db->get_value('PasswordSet') eq 'yes') +# To prevent a restore return a negative number +# To allow a restore choose an appropiate sort order, eg 90 sub installOrder { -#my $db = esmith::ConfigDB::unsaved->open; -#return if ($db->get_value('PasswordSet') eq 'yes'); # Too late to do a restore my $order = (`grep :x:5...: /etc/group`) ? -1 : 90; return $order; }