summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/drakbackup
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/drakbackup')
-rwxr-xr-xperl-install/standalone/drakbackup157
1 files changed, 76 insertions, 81 deletions
diff --git a/perl-install/standalone/drakbackup b/perl-install/standalone/drakbackup
index c9cd56210..50171531d 100755
--- a/perl-install/standalone/drakbackup
+++ b/perl-install/standalone/drakbackup
@@ -44,12 +44,13 @@ my $restore_sys = 1;
my $restore_user = 1;
my $restore_other = 1;
my $restore_step_sys_date = "";
+my $restore_step_other_date = "";
my @user_backuped;
my @sys_backuped;
-my $sys_backuped = 0;
-my $other_backuped = 0;
+my @other_backuped;
my @user_list_to_restore;
my @sys_list_to_restore;
+my @other_list_to_restore;
my $button_box;
my $button_box_tmp;
my $next_widget;
@@ -80,7 +81,6 @@ my $backup_bef_restore = 0;
my $table;
my @user_list_backuped;
my @files_corrupted;
-#- ack - not a great default - changed 20020814 (SB)
my $remove_user_before_restore = 0;
my @file_list_to_send_by_ftp;
my $results;
@@ -120,7 +120,6 @@ my $net_proto = '';
my $host_path = '';
my $login_user = '';
my $daemon = 0;
-my $backend_only = 0;
my $daemon_media = '';
my $hd_quota = 0;
my $where_net = 0;
@@ -279,7 +278,6 @@ sub explain_conf() {
}
sub backend_mode() {
- $backend_only = 1;
build_backup_files();
exit(0);
}
@@ -2802,8 +2800,6 @@ sub find_backup_to_restore() {
s/_incr//gi;
push @list_backup , $_;
}
- if (any { /^backup_other/ } @list_backup) { $other_backuped = 1 }
- if (any { /^backup_sys/ } @list_backup) { $sys_backuped = 1 }
foreach (grep { /^backup_sys_/ } @list_backup) {
chomp;
s/^backup_sys_//gi;
@@ -2819,6 +2815,21 @@ sub find_backup_to_restore() {
push @sys_backuped , $to_put;
}
$restore_step_sys_date = $to_put;
+ foreach (grep { /^backup_other_/ } @list_backup) {
+ chomp;
+ s/^backup_other_//gi;
+ s/.tar.gz$//gi;
+ s/.tar.bz2$//gi;
+ my ($date, $heure) = /^(.*)_([^_]*)$/;
+ my $year = substr($date, 0, 4);
+ my $month = substr($date, 4, 2);
+ my $day = substr($date, 6, 2);
+ my $hour = substr($heure, 0, 2);
+ my $min = substr($heure, 2, 2);
+ $to_put = "$day/$month/$year $hour:$min $_";
+ push @other_backuped , $to_put;
+ }
+ $restore_step_other_date = $to_put;
foreach (grep { /^backup_user_/ } @list_backup) {
chomp;
s/^backup_user_//gi;
@@ -2892,19 +2903,21 @@ sub system_state() {
}
sub restore_state() {
- my @tmp = split(' ', $restore_step_sys_date);
$restore_state = N("List of data to restore:\n\n");
- if ($restore_sys) { $restore_state .= "- Restore System Files.\n";
- $restore_state .= " - from date: $tmp[0] $tmp[1]\n";
+ if ($restore_sys) {
+ $restore_state .= N("- Restore System Files.\n");
+ my @tmp = split(' ', $restore_step_sys_date);
+ $restore_state .= N(" - from date: %s %s\n", $tmp[0], $tmp[1]);
}
if ($restore_user) {
- $restore_state .= "- Restore User Files: \n";
+ $restore_state .= N("- Restore User Files: \n");
$restore_state .= "\t\t$_\n" foreach @user_list_to_restore2;
push @user_list_to_restore, (split(',', $_))[0] foreach @user_list_to_restore2;
}
if ($restore_other) {
- $restore_state .= "- Restore Other Files: \n";
- -f "$path_to_find_restore/list_other" and $restore_state .= "\t\t$_\n" foreach split("\n", cat_("$path_to_find_restore/list_other"));
+ $restore_state .= N("- Restore Other Files: \n");
+ my @tmp = split(' ', $restore_step_other_date);
+ $restore_state .= N(" - from date: %s %s\n", $tmp[0], $tmp[1]);
}
if ($restore_other_path) {
$restore_state .= "- Path to Restore: $restore_path \n";
@@ -2988,6 +3001,26 @@ sub select_sys_data_to_restore() {
$DEBUG and print "sys list to restore: $_\n " foreach @sys_list_to_restore;
}
+sub select_other_data_to_restore() {
+ my $var_eq = 1;
+ my @list_tmp;
+ local $_;
+ @other_list_to_restore = ();
+
+ -d $path_to_find_restore and @list_tmp = grep { /^backup/ } all($path_to_find_restore);
+ my @more_recent = split(' ', $restore_step_other_date);
+ my $more_recent = pop @more_recent;
+ foreach my $var_exist (grep { /_other_/ } sort @list_tmp) {
+ if ($var_exist =~ /$more_recent/) {
+ push @other_list_to_restore, $var_exist;
+ $var_eq = 0;
+ } else {
+ $var_eq and push @other_list_to_restore, $var_exist;
+ }
+ }
+ $DEBUG and print "other list to restore: $_\n " foreach @other_list_to_restore;
+}
+
sub show_backup_details {
my ($function, $mode, $name) = @_;
my $archive_file_detail;
@@ -3122,9 +3155,7 @@ sub restore_backend() {
my $untar_cmd;
my $exist_problem = 0;
my $user_dir;
- my $tnom;
my $username;
- my $theure2;
local $_;
-d $restore_path or mkdir_p $restore_path;
@@ -3142,9 +3173,9 @@ sub restore_backend() {
} else {
foreach (@user_list_to_restore) {
if ($backup_user_versions) {
- ($tnom, $username, $theure2) = /^(\w+_\w+_user_)(.*)_(\d+_\d+.*)$/;
+ (undef, $username, undef) = /^(\w+_\w+_user_)(.*)_(\d+_\d+.*)$/;
} else {
- ($tnom, $username, $theure2) = /^(\w+_user_)(.*)_(\d+_\d+.*)$/;
+ (undef, $username, undef) = /^(\w+_user_)(.*)_(\d+_\d+.*)$/;
}
$user_dir = return_path($username);
@@ -3160,20 +3191,21 @@ sub restore_backend() {
}
if ($restore_sys) {
- if ($backup_sys_versions) {
- select_sys_data_to_restore();
- if (valid_backup_test(@sys_list_to_restore) == -1) {
- $exist_problem = 1;
- restore_aff_backup_problems();
- } else {
- system("$untar_cmd $path_to_find_restore/$_ -C $restore_path") foreach @sys_list_to_restore;
- }
- } else {
- system("$untar_cmd $path_to_find_restore/backup_sys.tar.gz -C $restore_path ");
- }
+ select_sys_data_to_restore();
+ if (valid_backup_test(@sys_list_to_restore) == -1) {
+ $exist_problem = 1;
+ restore_aff_backup_problems();
+ } else {
+ system("$untar_cmd $path_to_find_restore/$_ -C $restore_path") foreach @sys_list_to_restore;
+ }
}
- if ($restore_other) {
- system("$untar_cmd $path_to_find_restore/backup_other.tar.gz -C $restore_path ");
+ if ($restore_other) {
+ if (valid_backup_test(@other_list_to_restore) == -1) {
+ $exist_problem = 1;
+ restore_aff_backup_problems();
+ } else {
+ system("$untar_cmd $path_to_find_restore/$_ -C $restore_path") foreach @other_list_to_restore;
+ }
}
$exist_problem or restore_aff_result();
}
@@ -3220,7 +3252,17 @@ sub restore_do2() {
sub restore_step_other() {
my $retore_step_other;
my $text = new Gtk2::TextView;
- my $other_rest = cat_("$path_to_find_restore/list_other");
+ my $untar_cmd = "tar tzf";
+ my $other_rest = "";
+ select_other_data_to_restore();
+ if ($restore_other) {
+ foreach (@other_list_to_restore) {
+ if (/tar.bz2$/) {
+ $untar_cmd = "tar tjf";
+ }
+ $other_rest .= "/" . `$untar_cmd $path_to_find_restore/$_ -C $restore_path`;
+ }
+ }
gtktext_insert($text, [ [ $other_rest ] ]);
gtkpack($advanced_box,
$retore_step_other = gtkpack_(new Gtk2::VBox(0,10),
@@ -3345,52 +3387,6 @@ sub restore_step_sys() {
$up_box->show_all;
}
-sub restore_other_media_hd {
- my ($previous_function) = @_;
- my $box_where_hd;
- my $button;
- my $adj = new Gtk2::Adjustment(550.0, 10.0, 10000.0, 10.0, 5.0, 0.0);
- my $spinner;
-
- gtkpack($advanced_box,
- $box_where_hd = gtkpack_(new Gtk2::VBox(0, 6),
- 0, new Gtk2::HSeparator,
- 0, my $check_where_hd = new Gtk2::CheckButton(N("Use Hard Disk to backup")),
- 0, new Gtk2::HSeparator,
- 0, gtkpack_(new Gtk2::HBox(0,10),
- 0, gtkset_sensitive(new Gtk2::Label(N("Enter the directory to save:")), $where_hd),
- 1, new Gtk2::VBox(0, 6),
- 0, gtkset_size_request(gtkset_sensitive($save_path_entry = new Gtk2::Entry(), $where_hd), 152, 20),
- 0, gtkset_sensitive($button = gtksignal_connect(Gtk2::Button->new, clicked => sub {
- filedialog_where_hd() }), $where_hd),
- ),
- 0, new Gtk2::VBox(0, 6),
- 0, gtkpack_(new Gtk2::HBox(0,10),
- 0, gtkset_sensitive(new Gtk2::Label(N("Enter the maximum size\n allowed for Drakbackup (MB)")), $where_hd),
- 1, new Gtk2::VBox(0, 6),
- 0, gtkset_size_request(gtkset_sensitive($spinner = new Gtk2::SpinButton($adj, 0, 0), $where_hd), 200, 20),
- ),
- 0, gtkpack_(new Gtk2::HBox(0,10),
- 1, new Gtk2::VBox(0, 6),
- 0, gtkset_sensitive(my $check_where_hd_quota = new Gtk2::CheckButton(N("Use quota for backup files.")), $where_hd),
- 0, new Gtk2::VBox(0, 6),
- ),
- ),
- );
- check_list([$check_where_hd_quota, \$hd_quota]);
- gtksignal_connect(gtkset_active($check_where_hd, $where_hd), toggled => sub {
- $where_hd = $where_hd ? 0 : 1;
- destroy_widget();
- $current_widget->();
- });
- $button->add(gtkpack(new Gtk2::HBox(0,10), gtkcreate_img("ic82-dossier-32")));
- $save_path_entry->set_text($save_path);
- $save_path_entry->signal_connect('changed', sub { $save_path = $save_path_entry->get_text });
- if ($previous_function) { fonction_env(\$box_where_hd, \&advanced_where_hd, \&$previous_function) }
- else { fonction_env(\$box_where_hd, \&advanced_where_hd, \&advanced_where) }
- $up_box->show_all;
-}
-
sub restore_other_media() {
my $box_find_restore;
my $button;
@@ -3435,7 +3431,7 @@ sub restore_step2() {
my $info_prefix = "backup";
$info_prefix = "list" if $where_net || $where_tape;
- if (-f "$restore_info_path/$info_prefix" . "_other*") {
+ if (any { /_other_/ } grep { /^$info_prefix/ } all("$restore_info_path/")) {
$other_exist = 1;
} else {
$other_exist = 0; $restore_other = 0;
@@ -4086,7 +4082,7 @@ sub restore_box() {
find_backup_to_restore();
button_box_restore_main();
- if ($other_backuped || $sys_backuped || @user_backuped) {
+ if (@other_backuped || @sys_backuped || @user_backuped) {
gtkpack($advanced_box,
$retore_box = gtkpack_(new Gtk2::HBox(0,1),
1, new Gtk2::VBox(0,10),
@@ -4782,7 +4778,6 @@ sub interactive_mode() {
$in = 'interactive'->vnew;
- my $box;
my $winht = 440;
$winht = 320 if $::isEmbedded;
my $winwidth = 540;
@@ -4817,7 +4812,7 @@ sub interactive_mode() {
gtkadd($window1,
gtkpack(new Gtk2::VBox(0,0),
gtkpack(gtkset_size_request($up_box = new Gtk2::VBox(0, 5), $winwidth, $winht),
- $box = gtkpack_(new Gtk2::VBox(0, 3),
+ gtkpack_(new Gtk2::VBox(0, 3),
if_(!$::isEmbedded, 0, $darea),
1, gtkpack_(new Gtk2::HBox(0, 3),
1, gtkpack_(new Gtk2::HBox(0, 15),