mirror of https://github.com/digint/btrbk
btrbk: accept long options (use Getopt::Long instead of Getopt::Std)
parent
7017e14c32
commit
752dbc6157
66
btrbk
66
btrbk
|
@ -44,7 +44,7 @@ use warnings FATAL => qw( all );
|
||||||
|
|
||||||
use Carp qw(confess);
|
use Carp qw(confess);
|
||||||
use Date::Calc qw(Today Delta_Days Day_of_Week);
|
use Date::Calc qw(Today Delta_Days Day_of_Week);
|
||||||
use Getopt::Std;
|
use Getopt::Long qw(GetOptions);
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
|
|
||||||
our $VERSION = "0.20.0-dev";
|
our $VERSION = "0.20.0-dev";
|
||||||
|
@ -130,14 +130,16 @@ sub HELP_MESSAGE
|
||||||
print STDERR "usage: btrbk [options] <command>\n";
|
print STDERR "usage: btrbk [options] <command>\n";
|
||||||
print STDERR "\n";
|
print STDERR "\n";
|
||||||
print STDERR "options:\n";
|
print STDERR "options:\n";
|
||||||
print STDERR " --help display this help message\n";
|
# "--------------------------------------------------------------------------------"; # 80
|
||||||
print STDERR " --version display version information\n";
|
print STDERR " -h, --help display this help message\n";
|
||||||
print STDERR " -c FILE specify configuration file\n";
|
print STDERR " -v, --version display version information\n";
|
||||||
print STDERR " -p preserve all backups (do not delete any old targets)\n";
|
print STDERR " -c, --config=FILE specify configuration file\n";
|
||||||
print STDERR " -r resume only (no new snapshots, resume all missing backups)\n";
|
print STDERR " -p, --preserve preserve all backups (do not delete any old targets)\n";
|
||||||
print STDERR " -v be verbose (set loglevel=info)\n";
|
print STDERR " -r, --resume-only resume only (do not create new snapshots, only resume\n";
|
||||||
print STDERR " -q be quiet (do not print summary at end of \"run\" command)\n";
|
print STDERR " missing backups)\n";
|
||||||
print STDERR " -l LEVEL set loglevel (warn, info, debug, trace)\n";
|
print STDERR " -v, --verbose be verbose (set loglevel=info)\n";
|
||||||
|
print STDERR " -q, --quiet be quiet (do not print summary for the \"run\" command)\n";
|
||||||
|
print STDERR " -l, --loglevel=LEVEL set logging level (warn, info, debug, trace)\n";
|
||||||
print STDERR "\n";
|
print STDERR "\n";
|
||||||
print STDERR "commands:\n";
|
print STDERR "commands:\n";
|
||||||
print STDERR " run [subvol...] perform backup operations as defined in the config file\n";
|
print STDERR " run [subvol...] perform backup operations as defined in the config file\n";
|
||||||
|
@ -1438,41 +1440,45 @@ MAIN:
|
||||||
# install the "btrfs" executable to different locations.
|
# install the "btrfs" executable to different locations.
|
||||||
$ENV{PATH} = '/sbin:/bin:/usr/sbin:/usr/bin';
|
$ENV{PATH} = '/sbin:/bin:/usr/sbin:/usr/bin';
|
||||||
|
|
||||||
$Getopt::Std::STANDARD_HELP_VERSION = 1;
|
Getopt::Long::Configure qw(gnu_getopt);
|
||||||
$Data::Dumper::Sortkeys = 1;
|
$Data::Dumper::Sortkeys = 1;
|
||||||
my $start_time = time;
|
my $start_time = time;
|
||||||
my @today = Today();
|
my @today = Today();
|
||||||
|
|
||||||
my %opts;
|
|
||||||
unless(getopts('hc:prvql:', \%opts)) {
|
my ($config_cmdline, $quiet, $verbose, $preserve_backups, $resume_only);
|
||||||
|
unless(GetOptions(
|
||||||
|
'help|h' => sub { VERSION_MESSAGE(); HELP_MESSAGE(0); exit 0; },
|
||||||
|
'version' => sub { VERSION_MESSAGE(); exit 0; },,
|
||||||
|
'config|c=s' => \$config_cmdline,
|
||||||
|
'preserve|p' => \$preserve_backups,
|
||||||
|
'resume-only|r' => \$resume_only,
|
||||||
|
'quiet|q' => \$quiet,
|
||||||
|
'verbose|v' => sub { $loglevel = 2; },
|
||||||
|
'loglevel|l=s' => \$loglevel,
|
||||||
|
))
|
||||||
|
{
|
||||||
VERSION_MESSAGE();
|
VERSION_MESSAGE();
|
||||||
HELP_MESSAGE(0);
|
HELP_MESSAGE(0);
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
my $command = shift @ARGV;
|
my $command = shift @ARGV;
|
||||||
|
unless($command) {
|
||||||
# assign command line options
|
|
||||||
$loglevel = $opts{l} || "";
|
|
||||||
if (lc($loglevel) eq "warn") { $loglevel = 1; }
|
|
||||||
elsif(lc($loglevel) eq "info") { $loglevel = 2; }
|
|
||||||
elsif(lc($loglevel) eq "debug") { $loglevel = 3; }
|
|
||||||
elsif(lc($loglevel) eq "trace") { $loglevel = 4; }
|
|
||||||
elsif($loglevel =~ /^[0-9]+$/) { ; }
|
|
||||||
else {
|
|
||||||
$loglevel = $opts{v} ? 2 : 1;
|
|
||||||
}
|
|
||||||
@config_src = ( $opts{c} ) if($opts{c});
|
|
||||||
my $quiet = $opts{q};
|
|
||||||
my $preserve_backups = $opts{p};
|
|
||||||
my $resume_only = $opts{r};
|
|
||||||
|
|
||||||
# check command line options
|
|
||||||
if($opts{h} || (not $command)) {
|
|
||||||
VERSION_MESSAGE();
|
VERSION_MESSAGE();
|
||||||
HELP_MESSAGE(0);
|
HELP_MESSAGE(0);
|
||||||
exit 0;
|
exit 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# assign command line options
|
||||||
|
if (lc($loglevel) eq "warn") { $loglevel = 1; }
|
||||||
|
elsif(lc($loglevel) eq "info") { $loglevel = 2; }
|
||||||
|
elsif(lc($loglevel) eq "debug") { $loglevel = 3; }
|
||||||
|
elsif(lc($loglevel) eq "trace") { $loglevel = 4; }
|
||||||
|
elsif($loglevel =~ /^[0-9]+$/) { ; }
|
||||||
|
else { $loglevel = 1; }
|
||||||
|
@config_src = ( $config_cmdline ) if($config_cmdline);
|
||||||
|
|
||||||
|
# check command line options
|
||||||
my ($action_run, $action_info, $action_tree, $action_diff, $action_origin);
|
my ($action_run, $action_info, $action_tree, $action_diff, $action_origin);
|
||||||
my @subvol_args;
|
my @subvol_args;
|
||||||
my ($args_expected_min, $args_expected_max) = (0, 0);
|
my ($args_expected_min, $args_expected_max) = (0, 0);
|
||||||
|
|
14
doc/btrbk.1
14
doc/btrbk.1
|
@ -21,29 +21,29 @@ be incremented on each backup, starting at 1.
|
||||||
\-\-version
|
\-\-version
|
||||||
Prints the btrbk version.
|
Prints the btrbk version.
|
||||||
.TP
|
.TP
|
||||||
\-\-help
|
\-h, \-\-help
|
||||||
Prints the synopsis and a list of the commands.
|
Prints the synopsis and a list of the commands.
|
||||||
.TP
|
.TP
|
||||||
\-c <file>
|
\-c, \-\-config <file>
|
||||||
Read the configuration from <file>.
|
Read the configuration from <file>.
|
||||||
.TP
|
.TP
|
||||||
\-p
|
\-p, \-\-preserve
|
||||||
Preserve all backups. Skips deletion of old backups, even if specified
|
Preserve all backups. Skips deletion of old backups, even if specified
|
||||||
in the configuration file.
|
in the configuration file.
|
||||||
.TP
|
.TP
|
||||||
\-r
|
\-r, \-\-resume-only
|
||||||
Resume only. Skips snapshot creation, only resumes missing
|
Resume only. Skips snapshot creation, only resumes missing
|
||||||
backups. This only makes sense if the \fIresume_missing\fR option is
|
backups. This only makes sense if the \fIresume_missing\fR option is
|
||||||
set to \[lq]yes\[rq] in the configuration file.
|
set to \[lq]yes\[rq] in the configuration file.
|
||||||
.TP
|
.TP
|
||||||
\-v
|
\-v, \-\-verbose
|
||||||
Verbose output. Identical to: \-l info.
|
Verbose output. Identical to: \-l info.
|
||||||
.TP
|
.TP
|
||||||
\-q
|
\-q, \-\-quiet
|
||||||
Quiet operation. If set, btrbk does not print the summary after
|
Quiet operation. If set, btrbk does not print the summary after
|
||||||
executing the "run" command.
|
executing the "run" command.
|
||||||
.TP
|
.TP
|
||||||
\-l <level>
|
\-l, \-\-loglevel <level>
|
||||||
Set the level of verbosity. Accepted levels are warn, info, debug,
|
Set the level of verbosity. Accepted levels are warn, info, debug,
|
||||||
and trace.
|
and trace.
|
||||||
.SH COMMANDS
|
.SH COMMANDS
|
||||||
|
|
Loading…
Reference in New Issue