summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xperl-install/standalone/drakbackup81
1 files changed, 51 insertions, 30 deletions
diff --git a/perl-install/standalone/drakbackup b/perl-install/standalone/drakbackup
index aa1eccb79..6c14a33f0 100755
--- a/perl-install/standalone/drakbackup
+++ b/perl-install/standalone/drakbackup
@@ -34,7 +34,7 @@
# backend : --resore_all, --restore_sys, --restore_users
# --build_cd_autoinst
# --backup_now --backup_default_now
-
+# restore user: pbs with list selection
use Gtk;
use lib qw(/usr/lib/libDrakX );
@@ -317,8 +317,6 @@ sub build_backup_files {
if ($where_cd) {
}
-
-
}
sub interactive_mode {
@@ -751,9 +749,9 @@ sub advanced {
0, gtkpack_(new Gtk::HBox(0,10),
1, _("Please choose media to backup. "),
0, gtkpack_(new Gtk::VBox(0,10),
- 0, my $check_where_cd_daemon = new Gtk::CheckButton( _(" Use CD/DVDROM with daemon") ),
- 0, my $check_where_hd_daemon = new Gtk::CheckButton( _(" Use Hard Drive with daemon") ),
- 0, my $check_where_net_daemon = new Gtk::CheckButton( _(" Use Network with daemon") ),
+ 0, my $check_where_cd_daemon = new Gtk::CheckButton( _(" Use CD/DVDROM with daemon") ),
+ 0, my $check_where_hd_daemon = new Gtk::CheckButton( _(" Use Hard Drive with daemon") ),
+ 0, my $check_where_net_daemon = new Gtk::CheckButton( _(" Use Network with daemon") ),
),
),
@@ -773,7 +771,7 @@ sub advanced {
),
0, new Gtk::HSeparator,
0, gtkpack_(new Gtk::VBox(0,10),
- 0, my $check_tar_bz2 = new Gtk::CheckButton( _(" Use Tar and bzip2 ( else use tar and gunzip.)") ),
+ 0, my $check_tar_bz2 = new Gtk::CheckButton( _(" Use Tar and bzip2 ( else use tar and gunzip.)") ),
0, my $check_replace = new Gtk::CheckButton( _(" Replace (no update backup files)")),
0, my $check_backupignore = new Gtk::CheckButton( _(" Use .backupignore files")),
),
@@ -851,7 +849,7 @@ sub find_backup_to_restore {
my @user_backuped_tmp;
@user_backuped = ();
-d $save_path and my @list_backup = all($save_path);
- print $_."\n" foreach @list_backup;
+ $DEBUG and print $_."\n" foreach @list_backup;
if (grep /^backup_other_/, @list_backup) {$other_backuped = 1;}
if (grep /^backup_sys_/, @list_backup) {$sys_backuped = 1;}
foreach (grep /^backup_user_/, @list_backup) {
@@ -859,10 +857,17 @@ sub find_backup_to_restore {
s/^backup_user_//gi;
s/.tar.gz$//gi;
s/.tar.bz2$//gi;
- push @user_backuped ,$_;
+ push @user_backuped ,$_;
}
- print $_."\n" foreach @user_backuped;
+ $DEBUG and print $_."\n" foreach @user_backuped;
+}
+
+sub do_restore_backend {
+ $restore_user and system("cd / && tar xvfz $save_path/backup_user_$_.tar.gz ") foreach @user_list_to_restore;
+ $restore_sys and system("cd / && tar xvfz $save_path/backup_sys.tar.gz ");
+ $restore_other and system("cd / && tar xvfz $save_path/backup_other.tar.gz ");
+
}
sub do_restore {
@@ -870,7 +875,7 @@ sub do_restore {
gtkpack($retore_box2,
$do_restore = gtkpack_(new Gtk::VBox(0,10),
0, new Gtk::VBox(0,10),
- 1, new Gtk::Button(_("DO RESTORE...... ")),
+ 1, new Gtk::Button(_("RESTORE...... ")),
0, gtkpack_(new Gtk::HBox(0,10),
0, gtksignal_connect(new Gtk::Button(_(" Previous ")), clicked => sub {
${$central_widget}->destroy();
@@ -883,6 +888,7 @@ sub do_restore {
),
),
);
+ do_restore_backend();
$central_widget = \$do_restore;
$up_box->show_all();
@@ -890,23 +896,32 @@ sub do_restore {
sub restore_step_other {
my $retore_step_other;
+ print $_."\n" foreach (@user_list_to_restore);
gtkpack($retore_box2,
$retore_step_other = gtkpack_(new Gtk::VBox(0,10),
- 1, new Gtk::VBox(0,10),
- 0, my $check_restore_other_sure = new Gtk::CheckButton(_(" Sure to restore the other files .")),
- 1, new Gtk::VBox(0,10),
- 0, gtkpack_(new Gtk::HBox(0,10),
- 0, gtksignal_connect(new Gtk::Button(_(" Previous ")), clicked => sub {
- $retore_step_other->destroy();
- restore_step2();
- }),
- 1, new Gtk::VBox(0,10),
- 0, gtksignal_connect(new Gtk::Button(_(" Next ")), clicked => sub {
- ${$central_widget}->destroy();
- do_restore();
- }),
+ 1, new Gtk::VBox(0,10),
+ 1, createScrolledWindow( gtkpack(new Gtk::VBox(0,0),
+ gtkadd(new Gtk::Frame(_("Backup of other files content.")),
+ gtkpack(new Gtk::VBox(0,10),
+ cat_("$save_path/list_other"),
+ ),
+ ),
),
- ),
+ ),
+ 0, my $check_restore_other_sure = new Gtk::CheckButton(_(" Sure to restore the other files .")),
+ 1, new Gtk::VBox(0,10),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 0, gtksignal_connect(new Gtk::Button(_(" Previous ")), clicked => sub {
+ $retore_step_other->destroy();
+ restore_step2();
+ }),
+ 1, new Gtk::VBox(0,10),
+ 0, gtksignal_connect(new Gtk::Button(_(" Next ")), clicked => sub {
+ ${$central_widget}->destroy();
+ do_restore();
+ }),
+ ),
+ ),
);
foreach ([$check_restore_other_sure, \$restore_other]) {
my $ref = $_->[1];
@@ -919,6 +934,7 @@ sub restore_step_other {
my %check_user_to_restore;
sub restore_step_user {
+# @user_list_to_restore = @user_backuped;
my $retore_step_user;
gtkpack($retore_box2,
$retore_step_user = gtkpack_(new Gtk::VBox(0,10),
@@ -926,17 +942,20 @@ sub restore_step_user {
0, _("User list to restore "),
1, createScrolledWindow( gtkpack(new Gtk::VBox(0,0),
map { my $name = $_;
- my @user_list_tmp;
+ push @user_list_to_restore, $name;
my $b = new Gtk::CheckButton($name);
gtkset_active($b, 1);
$b->signal_connect(toggled => sub {
if ($check_user_to_restore{$name}[1] ) {
+ print "add : $name \n";
+ $check_user_to_restore{$name}[1] = 1;
+ if (!member($name, @user_list_to_restore) ) {
+ push @user_list_to_restore, $name;}
+ } else {
+ print "remove : $name \n";
$check_user_to_restore{$name}[1] = 0;
- @user_list_tmp = grep(!/^$name$/, @user_backuped);
+ my @user_list_tmp = grep(!/^$name$/,@user_list_to_restore );
@user_list_to_restore = @user_list_tmp;
- } else {
- $check_user_to_restore{$name}[1] = 1;
- if (!member($name, @user_backuped) ) {push @user_backuped, $name;}
}
});
$b } (@user_backuped)
@@ -996,6 +1015,7 @@ sub restore_step_sys {
}
sub restore_step2 {
+ my $un = 1;
my $retore_step2;
gtkpack($retore_box2,
$retore_step2 = gtkpack_(new Gtk::VBox(0,10),
@@ -1036,6 +1056,7 @@ sub restore {
my $check_restore_other;
find_backup_to_restore();
+
if ($other_backuped || $sys_backuped || @user_backuped) {
gtkpack($up_box,
$retore_box = gtkpack_(new Gtk::VBox(0,1),