diff options
-rwxr-xr-x | perl-install/standalone/drakbackup | 287 |
1 files changed, 160 insertions, 127 deletions
diff --git a/perl-install/standalone/drakbackup b/perl-install/standalone/drakbackup index d97a74262..cdafa7e00 100755 --- a/perl-install/standalone/drakbackup +++ b/perl-install/standalone/drakbackup @@ -92,7 +92,7 @@ my @list_other; my $mdk_cc = 0; my $DEBUG = 0; -my $backup_sys = 1; +my $backup_sys;# = 1; @@ -128,7 +128,7 @@ sub debug { } # initial functions -read_conf_file(); +#read_conf_file(); sub read_passwd { @user_and_path_list = map { (split(':', $_))[0] . ":" . (split(':', $_))[5] } grep {( split(':', $_))[2] > 500} split ('\n', cat_('/etc/passwd')); @@ -147,7 +147,7 @@ sub save_conf_file { "PATH_TO_SAVE=$save_path\n", ); $option_replace and push @cfg_list, "OPTION_REPLACE\n" ; - if ($backup_sys == 0) { push @cfg_list, "NO_SYS_FILES\n";} + $backup_sys or push @cfg_list, "NO_SYS_FILES\n"; if ($comp_mode) { push @cfg_list, "OPTION_COMP=TAR.BZ2\n"; } else { @@ -160,7 +160,8 @@ sub save_conf_file { sub read_conf_file { read_passwd(); if (-e $cfg_file) { - while (cat_ ('$cfg_file')) { + open ( CONF_FILE, "<"."$cfg_file") || die; + while (<CONF_FILE>) { next unless /\S/; next if /^#/; chomp; @@ -169,16 +170,45 @@ sub read_conf_file { if (/^OTHER_FILES/) { s/^OTHER_FILES=//gi; @other_files = split(' ', $_ ); } if (/^PATH_TO_SAVE/) { s/^PATH_TO_SAVE=//gi; $save_path = $_; } if (/^OPTION_REPLACE/) { $option_replace = 1; } - if (/^NO_SYS_FILES/) { $backup_sys = 0; } + if (/^NO_SYS_FILES/) { $backup_sys = 0;} if (/^OPTION_COMP/) { s/^OPTION_COMP=//gi; /TAR.GZ/ and $comp_mode = 0; /TAR.BZ2/ and $comp_mode = 1; } + unless (/^NO_SYS_FILES/) { $backup_sys = 1;} } $cfg_file_exist = 1; } else { $cfg_file_exist = 0; - } -# $DEBUG and debug; + print "no exist\n"; + } + close CONF_FILE; + $DEBUG and debug; } +# sub read_conf_file { +# read_passwd(); +# if (-e $cfg_file) { +# while (cat_ ('$cfg_file')) { +# next unless /\S/; +# next if /^#/; +# chomp; +# if (/^SYS_FILES/) { s/^SYS_FILES=//gi; @sys_files = split(' ', $_ ); } +# if (/^HOME_FILES/) { s/^HOME_FILES=//gi; @home_files = split(' ', $_ ); } +# if (/^OTHER_FILES/) { s/^OTHER_FILES=//gi; @other_files = split(' ', $_ ); } +# if (/^PATH_TO_SAVE/) { s/^PATH_TO_SAVE=//gi; $save_path = $_; } +# if (/^OPTION_REPLACE/) { $option_replace = 1; } +# if (/^NO_SYS_FILES/) { $backup_sys = 0; print "I see NO_SYS_FILES\n"; } +# if (/^OPTION_COMP/) { s/^OPTION_COMP=//gi; /TAR.GZ/ and $comp_mode = 0; /TAR.BZ2/ and $comp_mode = 1; } +# unless (/^NO_SYS_FILES/) { $backup_sys = 1; print "I NO see NO_SYS_FILES\n"; } +# } +# $cfg_file_exist = 1; +# } else { +# $cfg_file_exist = 0; +# print "no exist\n"; +# } +# # $DEBUG and debug; +# } + + + if ($mdk_cc) { $build_floppy || $build_cd || $default || @list_arg || $conf_file ? backend_mod() : interactive_mode(); } else { $build_floppy || $build_cd || $default || @list_arg || $conf_file ? backend_mod() : interactive_mode_my(); } @@ -269,98 +299,6 @@ sub interactive_mode { } -sub about { - my $text = new Gtk::Text(undef, undef); - my $about_box; - gtkpack($up_box, - $about_box = gtkpack_(new Gtk::VBox(0,10), - 1, gtkpack_(new Gtk::HBox(0,0), - 1, gtktext_insert(gtkset_editable($text, 1), _(" - Copyright (C) 2001 by MandrakeSoft (sdupont\@mandrakesoft.com) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -")), - 0, new Gtk::VScrollbar($text->vadj), - ), - 0, gtkadd(gtkset_layout(new Gtk::HButtonBox, -spread), - gtksignal_connect(new Gtk::Button(_("OK")), clicked => - sub { ${$central_widget}->destroy(); - $mdk_cc and interactive_mode(); - $mdk_cc or interactive_mode_my(); - }), - ), - ) - ); - $central_widget = \$about_box; - $up_box->show_all(); -} - - -sub adv_help { - my $text = new Gtk::Text(undef, undef); - my $about_box; - gtkpack($up_box, - $about_box = gtkpack_(new Gtk::VBox(0,10), - 1, gtkpack_(new Gtk::HBox(0,0), - 1, gtktext_insert(gtkset_editable($text, 1), _(" -description: - - Drakbacup is use to backup system files and user files - Drakbacup allow to restore the system (etc, var files) - from starup or on drakconf utility. - -backup name format: all the time from the / dir. - - system backup: - backup_sys_12102001.tar.gz - backup_sys_etc_var_proc_12102001.tar.gz - user backup - backup_user_james_12102001.tar.gz - backup_user_james_documents_12102001.tar.gz - other directories - backup_other_proc_12102001.tar.gz - -backup name rules: system: begin by sys - user: begin by user - other: begin by other - end of all `date`.tar.gz - - -save only the differences... -find / -mtime -1 \! -type d -print > /tmp/liste.jour - -build iso fs with rescue. - -configuration file: - - /etc/drakconf/drakbackup/drakbakup.conf - - -")), - 0, new Gtk::VScrollbar($text->vadj), - ), - 0, gtkadd(gtkset_layout(new Gtk::HButtonBox, -spread), - gtksignal_connect(new Gtk::Button(_("OK")), clicked => - sub { ${$central_widget}->destroy(); advanced(); }), - ), - ) - ); - $central_widget = \$about_box; - $up_box->show_all(); -} sub list_remove { my($widget, $list) = @_; @@ -453,10 +391,12 @@ sub advanced { my $book_closed; my $book_closed_mask; my $box_tmp; - $list_other = new Gtk::List(); $list_other->set_selection_mode(-extended); + 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"); @@ -515,7 +455,7 @@ sub advanced { my $box_what_sys = gtkpack_(new Gtk::VBox(0,1), 1, _("\nPlease check all options that you need.\n"), #gtkset_active - 0, gtksignal_connect(gtkset_active(new Gtk::CheckButton( _(" Backup your System files. (~ 10Mo)")), $backup_sys) , clicked => sub { $backup_sys = $backup_sys ? 0 : 1; print "backup sys : $backup_sys\n"; }), + 0, gtksignal_connect(gtkset_active(new Gtk::CheckButton( _(" Backup your System files. (~ 10Mo)")), 0) , clicked => sub { print "on affiche le check valeur :$backup_sys \n"; $backup_sys = $backup_sys ? 0 : 1; print "backup sys value__ : $backup_sys\n"; }), 0, gtkset_active(new Gtk::CheckButton( _(" Need to restore any versions (CVS)") ), 1), 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"), ); @@ -541,36 +481,31 @@ sub advanced { gtksignal_connect(new Gtk::Button(_("Remove Selected")), clicked => \&list_remove, $list_other), ), ); - + 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)") ), - 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 $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)") ), - 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"), - ); - + 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 $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)") ), - 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"), - ); + 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 $box_what = gtkpack(new Gtk::VBox(0,1), $notebook_what = new Gtk::Notebook, $notebook_what->insert_page( $box_what_sys, $label_what_sys, 0), $notebook_what->insert_page( $box_what_user, $label_what_user, 1), $notebook_what->insert_page( $box_what_other, $label_what_other, 2), - $notebook_what->set_scrollable( 1), + $notebook_what->set_scrollable(1), ); my $box_where = gtkpack(new Gtk::VBox(0,1), @@ -602,14 +537,15 @@ sub advanced { ), 0, gtkadd(new Gtk::HButtonBox, gtksignal_connect(new Gtk::Button(_("Close")), clicked => - sub { ${$central_widget}->destroy(); + sub { save_conf_file(); + ${$central_widget}->destroy(); $mdk_cc and interactive_mode(); $mdk_cc or interactive_mode_my(); }), gtksignal_connect(new Gtk::Button(_("Help")), clicked => sub { save_conf_file(); ${$central_widget}->destroy(); adv_help() }), gtksignal_connect(new Gtk::Button(_("Ok")), clicked => sub { - ${$central_widget}->destroy(); after_adv(); }), + save_conf_file(); ${$central_widget}->destroy(); after_adv(); }), ), ), ), @@ -634,6 +570,7 @@ sub interactive_mode_my { my $style; my $box; init Gtk; + my $box_cgf_state_sys = (""); my $text2 = new Gtk::Text(undef, undef); my $window1 = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window -toplevel; $window1->signal_connect (delete_event => sub { Gtk->exit(0) }); @@ -645,6 +582,8 @@ sub interactive_mode_my { my ($pix_r_map, $pix_r_mask) = gtkcreate_png("../pixmaps/backup_bot.png"); read_conf_file(); + $backup_sys or $box_cgf_state_sys = _("Do not include System Files"); + if ($option_replace) { $box_cgf_state_replace = _("Replace backups (do not update)"), } else { $box_cgf_state_replace = _("Update backups (do not replace)"), } @@ -652,7 +591,7 @@ sub interactive_mode_my { } else { $box_cgf_state_comp = _("Backups use tar and gunzip"), } if ($cfg_file_exist) { - my $label_cfg_file = new Gtk::Label _("Backup Sources: \n-System Files: @sys_files \n-Users Files: @home_files\n-Other Files to backup: @other_files\nPath to save backups: $save_path\nOptions:\n$box_cgf_state_replace\n$box_cgf_state_comp\n\n"); + my $label_cfg_file = new Gtk::Label _("Backup Sources: \n-System Files: @sys_files \n-Users Files: @home_files\n-Other Files to backup: @other_files\nPath to save backups: $save_path\nOptions:\n$box_cgf_state_replace\n$box_cgf_state_comp\n$box_cgf_state_sys\n"); $box_cfg_state = gtkpack(new Gtk::VBox( 0, 0), gtkset_justify( $label_cfg_file , 'left'), ), @@ -675,9 +614,9 @@ sub interactive_mode_my { 0, new Gtk::Pixmap($pix_r_map, $pix_r_mask), 1, gtkpack_(new Gtk::VBox(0, 1), 1, gtksignal_connect(new Gtk::Button(_(" Build Backup ")), - clicked => sub { save_conf_file(); Gtk->main_quit() }), + clicked => sub { Gtk->main_quit() }), 1, gtksignal_connect(new Gtk::Button(_(" Restore ")), - clicked => sub { save_conf_file(); Gtk->main_quit() }), + clicked => sub { Gtk->main_quit() }), ), ), 0, new Gtk::HSeparator, @@ -688,7 +627,7 @@ sub interactive_mode_my { 1, gtksignal_connect(new Gtk::Button(_("Wizard Conf.")), clicked => sub { ${$central_widget}->destroy(); wizard() }), 1, gtksignal_connect(new Gtk::Button(_("close")), clicked => - sub { save_conf_file(); Gtk->main_quit() }), + sub { Gtk->main_quit() }), ), ), ), @@ -710,6 +649,7 @@ sub after_adv { my $box_cgf_state_comp; my $mask; my $style; + my $box_cgf_state_sys; my $box; init Gtk; my $text2 = new Gtk::Text(undef, undef); @@ -723,6 +663,7 @@ sub after_adv { my ($pix_r_map, $pix_r_mask) = gtkcreate_png("../pixmaps/backup_bot.png"); read_conf_file(); + $backup_sys or $box_cgf_state_sys = _("Do not include System Files"); if ($option_replace) { $box_cgf_state_replace = _("Replace backups (do not update)"), } else { $box_cgf_state_replace = _("Update backups (do not replace)"), } @@ -730,7 +671,7 @@ sub after_adv { } else { $box_cgf_state_comp = _("Backups use tar and gunzip"), } if ($cfg_file_exist) { - my $label_cfg_file = new Gtk::Label _("Backup Sources: \n-System Files: @sys_files \n-Users Files: @home_files\n-Other Files to backup: @other_files\nPath to save backups: $save_path\nOptions:\n$box_cgf_state_replace\n$box_cgf_state_comp\n\n"); + my $label_cfg_file = new Gtk::Label _("Backup Sources: \n-System Files: @sys_files \n-Users Files: @home_files\n-Other Files to backup: @other_files\nPath to save backups: $save_path\nOptions:\n$box_cgf_state_replace\n$box_cgf_state_comp\n$box_cgf_state_sys\n"); $box_cfg_state = gtkpack(new Gtk::VBox( 0, 0), gtkset_justify( $label_cfg_file , 'left'), ), @@ -753,9 +694,9 @@ sub after_adv { 0, new Gtk::Pixmap($pix_r_map, $pix_r_mask), 1, gtkpack_(new Gtk::VBox(0, 1), 1, gtksignal_connect(new Gtk::Button(_(" Build Backup ")), - clicked => sub { save_conf_file(); Gtk->main_quit() }), + clicked => sub { Gtk->main_quit() }), 1, gtksignal_connect(new Gtk::Button(_(" Restore ")), - clicked => sub { save_conf_file(); Gtk->main_quit() }), + clicked => sub { Gtk->main_quit() }), ), ), 0, new Gtk::HSeparator, @@ -766,7 +707,7 @@ sub after_adv { 1, gtksignal_connect(new Gtk::Button(_("Wizard Conf.")), clicked => sub { ${$central_widget}->destroy(); wizard() }), 1, gtksignal_connect(new Gtk::Button(_("close")), clicked => - sub { save_conf_file(); Gtk->main_quit() }), + sub { Gtk->main_quit() }), ), ), ), @@ -781,6 +722,98 @@ sub after_adv { } +sub about { + my $text = new Gtk::Text(undef, undef); + my $about_box; + gtkpack($up_box, + $about_box = gtkpack_(new Gtk::VBox(0,10), + 1, gtkpack_(new Gtk::HBox(0,0), + 1, gtktext_insert(gtkset_editable($text, 1), _(" + Copyright (C) 2001 by MandrakeSoft (sdupont\@mandrakesoft.com) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +")), + 0, new Gtk::VScrollbar($text->vadj), + ), + 0, gtkadd(gtkset_layout(new Gtk::HButtonBox, -spread), + gtksignal_connect(new Gtk::Button(_("OK")), clicked => + sub { ${$central_widget}->destroy(); + $mdk_cc and interactive_mode(); + $mdk_cc or interactive_mode_my(); + }), + ), + ) + ); + $central_widget = \$about_box; + $up_box->show_all(); +} + + +sub adv_help { + my $text = new Gtk::Text(undef, undef); + my $about_box; + gtkpack($up_box, + $about_box = gtkpack_(new Gtk::VBox(0,10), + 1, gtkpack_(new Gtk::HBox(0,0), + 1, gtktext_insert(gtkset_editable($text, 1), _(" +description: + + Drakbacup is use to backup system files and user files + Drakbacup allow to restore the system (etc, var files) + from starup or on drakconf utility. + +backup name format: all the time from the / dir. + + system backup: + backup_sys_12102001.tar.gz + backup_sys_etc_var_proc_12102001.tar.gz + user backup + backup_user_james_12102001.tar.gz + backup_user_james_documents_12102001.tar.gz + other directories + backup_other_proc_12102001.tar.gz + +backup name rules: system: begin by sys + user: begin by user + other: begin by other + end of all `date`.tar.gz + + +save only the differences... +find / -mtime -1 \! -type d -print > /tmp/liste.jour + +build iso fs with rescue. + +configuration file: + + /etc/drakconf/drakbackup/drakbakup.conf + + +")), + 0, new Gtk::VScrollbar($text->vadj), + ), + 0, gtkadd(gtkset_layout(new Gtk::HButtonBox, -spread), + gtksignal_connect(new Gtk::Button(_("OK")), clicked => + sub { ${$central_widget}->destroy(); advanced(); }), + ), + ) + ); + $central_widget = \$about_box; + $up_box->show_all(); +} |