summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/drakbackup
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/drakbackup')
-rwxr-xr-xperl-install/standalone/drakbackup169
1 files changed, 138 insertions, 31 deletions
diff --git a/perl-install/standalone/drakbackup b/perl-install/standalone/drakbackup
index 97aafad84..f14f03d29 100755
--- a/perl-install/standalone/drakbackup
+++ b/perl-install/standalone/drakbackup
@@ -87,6 +87,7 @@ my $backup_choice = 0;
my $cfg_file_exist = 0;
my @user_and_path_list;
my @user_list;
+my @all_user_list;
my $list_other;
my @list_other;
my $mdk_cc = 0;
@@ -105,6 +106,9 @@ my $backup_mode = 0;
my $backup_sys = 1;
my $backup_sys_cvs = 1;
my $what_no_browser = 1;
+my $remember_pass = 0;
+my $cdrw = 0;
+my $net_proto;
foreach (@ARGV) {
/--default/ and $default = 1, $mode=-1;
@@ -131,10 +135,10 @@ sub read_passwd {
@user_and_path_list = map { (split(':', $_))[0] . ":" . (split(':', $_))[5] } grep {( split(':', $_))[2] > 500} split ('\n', cat_('/etc/passwd'));
$DEBUG and print "user_and_path_list: ".$_."\n" foreach (@user_and_path_list);
@home_files = ();
- @user_list = ();
+ @all_user_list = ();
push @user_and_path_list, 'root:/root';
- push @home_files, (split(':', $_))[1] foreach (@user_and_path_list);
- push @user_list, (split(':', $_))[0] foreach (@user_and_path_list);
+ push @home_files, (split(':', $_))[0] foreach (@user_and_path_list);
+ push @all_user_list, (split(':', $_))[0] foreach (@user_and_path_list);
$DEBUG and print "home_files: ".$_."\n" foreach (@home_files);
}
@@ -143,8 +147,10 @@ sub save_conf_file {
"HOME_FILES=@home_files\n",
"OTHER_FILES=@other_files\n",
"PATH_TO_SAVE=$save_path\n",
+ "NET_PROTO=$net_proto\n"
);
-
+ $cdrw and push @cfg_list, "CDRW\n" ;
+ $remember_pass and push @cfg_list, "REMEMBER_PASS\n" ;
$what_no_browser or push @cfg_list, "BROWSER_CACHE\n" ;
$backup_sys_cvs or push @cfg_list, "NO_SYS_CVS\n" ;
$option_replace and push @cfg_list, "OPTION_REPLACE\n" ;
@@ -174,6 +180,9 @@ sub read_conf_file {
if (/^OPTION_COMP/) { s/^OPTION_COMP=//gi; /TAR.GZ/ and $comp_mode = 0; /TAR.BZ2/ and $comp_mode = 1; }
if (/^NO_SYS_CVS/) { $backup_sys_cvs = 0; }
if (/^BROWSER_CACHE/) { $what_no_browser = 0; }
+ if (/^CDRW/) { $cdrw = 1; }
+ if (/^REMEMBER_PASS/) { $remember_pass = 1; }
+ if (/^NET_PROTO/) { s/^NET_PROTO=//gi; $net_proto = $_; }
}
$cfg_file_exist = 1;
} else {
@@ -304,8 +313,6 @@ sub filedialog {
$file_dialog->show();
}
-
-
sub wizard {
my $user = 1;
my $user2;
@@ -349,7 +356,6 @@ sub wizard {
);
}
-
sub advanced {
my $notebook;
my $notebook_what;
@@ -366,9 +372,10 @@ sub advanced {
my $choice_what_sys;
$list_other = new Gtk::List();
$list_other->set_selection_mode(-extended);
-
+ my $adj = new Gtk::Adjustment 1.0, 1.0, 10000.0, 1.0, 5.0, 0.0;
read_conf_file();
+
my ($pix_net_map, $pix_net_mask) = gtkcreate_png("../pixmaps/backup_net.png");
my ($pix_hd_map, $pix_hd_mask) = gtkcreate_png("../pixmaps/backup_hd.png");
my ($pix_time_map, $pix_time_mask) = gtkcreate_png("../pixmaps/backup_time.png");
@@ -412,19 +419,19 @@ sub advanced {
_("Other", " ")
);
- my $label_where_network = gtkpack(new Gtk::HBox( 0, 2),
+ my $label_where_net = gtkpack(new Gtk::HBox( 0, 2),
new Gtk::Pixmap($pix_net2_map, $pix_net2_mask),
_(" Network ")
);
my $label_where_cd = gtkpack(new Gtk::HBox( 0, 2),
new Gtk::Pixmap($pix_cd_map, $pix_cd_mask),
- _(" CDROM ")
+ _(" CDROM\nDVDROM ")
);
my $label_where_hd = gtkpack(new Gtk::HBox( 0, 2),
new Gtk::Pixmap($pix_hd2_map, $pix_hd2_mask),
- _(" Hard Drive ")
+ _(" Hard Drive\n NFS ")
);
my $box_what_sys = gtkpack_(new Gtk::VBox(0,1),
@@ -433,12 +440,17 @@ sub advanced {
0, my $check_what_cvs = new Gtk::CheckButton( _(" Need to restore any versions (CVS)") ),
1, _("With this option you will be able to restore any version\n of your /etc directory like in CVS this solution seems to be\n more interesting because it allow you to restore at any\n moment any vercions of your /etc"),
);
-
+ my %check_what_user;
my $box_what_user = gtkpack_(new Gtk::VBox(0,0),
0, _("Please check all user that you want to include inb your backup."),
0, new Gtk::HSeparator,
1, createScrolledWindow( gtkpack(new Gtk::VBox(0,0),
- map {my $check_what_user = new Gtk::CheckButton("$_") } (@user_list)
+ map { my $b = new Gtk::CheckButton("$_");
+ $check_what_user{$_} = $b;
+# if(member($_, @user_list )) {
+# $check_what_user{$_}->set_active(1);
+# } else { $check_what_user{$_}->set_active(0);}
+ $b } (@all_user_list)
),
),
0, new Gtk::HSeparator,
@@ -455,22 +467,77 @@ sub advanced {
),
);
- my $box_where_mdkonline = gtkpack_(new Gtk::VBox(0,1),
- 1, _("\nPlease check all options that you need.\n"),
- 0, new Gtk::CheckButton( _(" Backup your System files. (~ 10Mo)") ),
- 0, new Gtk::CheckButton( _(" Need to restore any versions (CVS)") ),
- );
+
+ my $combo_where_net_proto = new Gtk::Combo();
+ $combo_where_net_proto->set_popdown_strings ("scp","ftp", "sftp", "rsync");
+ my $box_where_net = gtkpack_(new Gtk::VBox(0,1),
+ 0, new Gtk::HSeparator,
+ 0, my $check_where_net = new Gtk::CheckButton( _(" Use Network to backup") ),
+ 0, my $check_where_net_daemon = new Gtk::CheckButton( _(" Use Network with daemon") ),
+ 0, new Gtk::HSeparator,
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("please choose your protocol"),
+ 0, $combo_where_net_proto,
+ 0, _(""),
+ ),
+ 0, _(""),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("please entrer the directory\n to put the backup on thid host. "),
+ 1, my $host_directory= new Gtk::Entry(),
+ 0, _(""),
+ ),
+ 0, _(""),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("please entrer your login"),
+ 0, my $login_user= new Gtk::Entry(),
+ 0, _(""),
+ ),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("please entrer your passord"),
+ 0, my $passwd_user= new Gtk::Entry(),
+ 0, _(""),
+ ),
+ 0, my $check_remember_pass = new Gtk::CheckButton( _(" remember this password") ),
+ );
my $box_where_hd = gtkpack_(new Gtk::VBox(0,1),
- 1, _("\nPlease check all options that you need.\n"),
- 0, new Gtk::CheckButton( _(" Backup your System files. (~ 10Mo)") ),
- 0, new Gtk::CheckButton( _(" Need to restore any versions (CVS)") ),
+ 0, new Gtk::HSeparator,
+ 0, my $check_where_hd = new Gtk::CheckButton( _(" Use Hard Disk to backup") ),
+ 0, my $check_where_hd_daemon = new Gtk::CheckButton( _(" Use Hard Disk with daemon") ),
+ 0, new Gtk::HSeparator,
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 0, _(" "),
+ 0, _("Please entrer the directory to save: "),
+ 1, my $save_path = new Gtk::Entry(),
+ 0, _(""),
+ ),
+ 0, _(""),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 0, _(""),
+ 0, _("Please entrer the maximum size allowed for Drakbackup "),
+ 1, my $spinner = new Gtk::SpinButton( $adj, 0, 0),
+ 0, _(""),
+ ),
);
-
+
+ my $combo_where_cd_time = new Gtk::Combo();
+ $combo_where_cd_time->set_popdown_strings ("650","700", "750", "800");
my $box_where_cd = gtkpack_(new Gtk::VBox(0,1),
- 1, _("\nPlease check all options that you need.\n"),
- 0, new Gtk::CheckButton( _(" Backup your System files. (~ 10Mo)") ),
- 0, new Gtk::CheckButton( _(" Need to restore any versions (CVS)") ),
+ 0, new Gtk::HSeparator,
+ 0, my $check_where_cd = new Gtk::CheckButton( _(" Use CD/DVDROM to backup") ),
+ 0, my $check_where_cd_daemon = new Gtk::CheckButton( _(" Use CD/DVDROM with daemon") ),
+ 0, new Gtk::HSeparator,
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("please choose your CD space"),
+ 0, $combo_where_cd_time,
+ 0, _(""),
+ ),
+ 0, _(""),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _(" Please check if you are using CDRW media"),
+ 0, my $check_cdrw = new Gtk::CheckButton(),
+ 0, _(""),
+ ),
);
my $box_what = gtkpack(new Gtk::VBox(0,1),
@@ -483,13 +550,34 @@ sub advanced {
my $box_where = gtkpack(new Gtk::VBox(0,1),
$notebook_where = new Gtk::Notebook,
- $notebook_where->insert_page( $box_where_mdkonline, $label_where_network, 0 ),
+ $notebook_where->insert_page( $box_where_net, $label_where_net, 0 ),
$notebook_where->insert_page( $box_where_hd, $label_where_hd, 1 ),
$notebook_where->insert_page( $box_where_cd, $label_where_cd, 1 ),
);
- my $box_when = gtkpack(new Gtk::VBox(0,1),
- $notebook_when = new Gtk::Notebook,
- );
+
+ my $combo_when_space = new Gtk::Combo();
+ $combo_when_space->set_popdown_strings (_("daily"),_("week"),_("month"),_("year"),);
+ my $box_when = gtkpack_(new Gtk::VBox(0,1),
+ 0, new Gtk::Pixmap($pix_time_map, $pix_time_mask),
+ 0, new Gtk::HSeparator,
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("Please choose interval \nspace between each backup "),
+ 0, $combo_when_space,
+ 0, _(""),
+ ),
+ 0, _(""),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 1, _("Please choose media to backup. "),
+ 0, gtkpack_(new Gtk::VBox(0,10),
+ 0, $check_where_cd_daemon = new Gtk::CheckButton( _(" Use CD/DVDROM with daemon") ),
+ 0, $check_where_hd_daemon = new Gtk::CheckButton( _(" Use Hard Drive with daemon") ),
+ 0, $check_where_net_daemon = new Gtk::CheckButton( _(" Use Network with daemon") ),
+ ),
+ ),
+
+ 0, new Gtk::HSeparator,
+ );
+
my $box_options = gtkpack(new Gtk::VBox(0,1),
$notebook_options = new Gtk::Notebook,
);
@@ -502,7 +590,7 @@ sub advanced {
$notebook->insert_page( $box_what, $label_what, 0),
$notebook->insert_page( $box_where, $label_where, 1),
$notebook->insert_page( $box_when, $label_when, 2),
- $notebook->insert_page( $box_options, $label_options, 3),
+# $notebook->insert_page( $box_options, $label_options, 3),
$notebook->set_scrollable( 1 )
),
),
@@ -526,7 +614,26 @@ sub advanced {
bottom => "left",
left => "top"
);
- foreach ([$check_what_sys, \$backup_sys], [$check_what_cvs, \$backup_sys_cvs], [$check_what_browser, \$what_no_browser]) {
+# my @checked_user_list;
+
+# print $check_what_user{'seb'}->active."\n";
+# @user_list = ();
+
+# foreach (@all_user_list) {
+# gtksignal_connect(gtkset_active($check_what_user{$_},$check_what_user{$_}), toggled => sub { $check_what_user{$_} = $check_what_user{$_} ? 0 : 1; });
+# $check_what_user{$_}->active and push @user_list, $_;
+# print $_ . "\n";# foreach @checked_user_list;
+# }
+
+
+# foreach (@user_list) {
+# gtkset_active($check_what_user{$_}, $check_what_user{$_}->active),
+# # gtksignal_connect(gtkset_active($check_what_user{$_},$check_what_user{$_}), toggled => sub { $check_what_user{$_} = $check_what_user{$_} ? 0 : 1; })
+# }
+ $combo_where_net_proto->entry->signal_connect( 'changed', sub { $net_proto = $combo_where_net_proto->entry->get_text()});
+
+
+ foreach ([$check_what_sys, \$backup_sys], [$check_what_cvs, \$backup_sys_cvs], [$check_what_browser, \$what_no_browser], [$check_remember_pass, \$remember_pass], [$check_cdrw, \$cdrw]) {
my $ref = $_->[1];
gtksignal_connect(gtkset_active($_->[0], ${$ref}), toggled => sub { ${$ref} = ${$ref} ? 0 : 1; })
}