# HG changeset patch # User Heiko Schlittermann (ZARAFA.ctq.de) hs@schlittermann.de # Date 1303916460 -7200 # Node ID ce823daf21412238f8cf4d890e7f94a31d4883a7 # Parent 708e3b8bd670acdfd5f6bf0cfdf2152594f021a6# Parent 23a3977d923d12ccaac1a50834e788886c186e8e merged diff -r 708e3b8bd670 -r ce823daf2141 .hgignore --- a/.hgignore Wed Apr 27 16:58:51 2011 +0200 +++ b/.hgignore Wed Apr 27 17:01:00 2011 +0200 @@ -1,9 +1,7 @@ syntax: glob ftbackup.conf debian/* -ftbackup.8 debian/files -Makefile .version _build/ blib/ diff -r 708e3b8bd670 -r ce823daf2141 .perltidyrc --- a/.perltidyrc Wed Apr 27 16:58:51 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ ---paren-tightness=2 ---square-bracket-tightness=2 diff -r 708e3b8bd670 -r ce823daf2141 Build.PL --- a/Build.PL Wed Apr 27 16:58:51 2011 +0200 +++ b/Build.PL Wed Apr 27 17:01:00 2011 +0200 @@ -4,13 +4,12 @@ Module::Build->new( dist_name => "ftbackup", - dist_version => "0.7", + dist_version => "0.8", requires => { perl => "5.10.0", - "Perl6::Slurp" => 0, "Net::FTP" => 0, "Date::Parse" => 0, }, - script_files => [glob("sbin/*")], + script_files => [glob("bin/*")], )->create_build_script(); diff -r 708e3b8bd670 -r ce823daf2141 MANIFEST --- a/MANIFEST Wed Apr 27 16:58:51 2011 +0200 +++ b/MANIFEST Wed Apr 27 17:01:00 2011 +0200 @@ -1,5 +1,5 @@ -.perltidyrc -sbin/ftbackup +bin/.perltidyrc +bin/ftbackup build-stamp configure configure-stamp diff -r 708e3b8bd670 -r ce823daf2141 bin/.perltidyrc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/.perltidyrc Wed Apr 27 17:01:00 2011 +0200 @@ -0,0 +1,2 @@ +--paren-tightness=2 +--square-bracket-tightness=2 diff -r 708e3b8bd670 -r ce823daf2141 bin/ftbackup --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/ftbackup Wed Apr 27 17:01:00 2011 +0200 @@ -0,0 +1,725 @@ +#! /usr/bin/perl + +use 5.010; +use strict; +use warnings; + +use File::Basename; +use Net::FTP; +use Getopt::Long; +use Sys::Hostname; +use Pod::Usage; +use POSIX qw(strftime); +use Date::Parse qw(str2time); +use Cwd qw(realpath); +use English qw(-no_match_vars); +use if $ENV{DEBUG} => qw(Smart::Comments); + +$ENV{LC_ALL} = "C"; + +my $ME = basename $0; +my $VERSION = ''; + +my @CONFIGS = ("/etc/$ME.conf", "$ENV{HOME}/.$ME.conf", "$ME.conf"); + +my $HOSTNAME = hostname; +my $NOW = time(); + +my $opt_level = undef; +my $opt_today = strftime("%F", localtime $NOW); +my @opt_debug = (); +my $opt_verbose = 0; +my $opt_dry = 0; +my $opt_force = 0; +my $opt_label = "daily"; +my $opt_info = 0; +my $opt_config = ""; +my $opt_clean = 1; +my $opt_dumpdates = "/var/lib/dumpdates"; + +sub slurp($); +sub get_configs(@); +sub get_candidates(); +sub verbose(@); +sub update_devnames($$$); +sub get_history(@); +sub calculate_level($@); +sub real_device($); +sub get_estimate($$); +sub devno($); +sub unlink_old_dumps($$); + +our @AT_EXIT; +END { $_->() foreach @AT_EXIT } +$SIG{INT} = sub { warn "Got signal INT\n"; exit 1 }; + +my %CONFIG = ( + FTP_DIR => "backup/