diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2020-02-08 00:14:10 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2020-02-08 00:14:10 -0700 |
commit | 2a1c7ef7c020dd3ed47ed18f28f3ce8f9dad9c79 (patch) | |
tree | 6ee6fbf4dca686721b29e92e8358eeef4290e89e /lib | |
parent | 335ce93a4ae9c97ebdb22a3f0349796ef3654c3f (diff) | |
download | p5-Git-Annex-2a1c7ef7c020dd3ed47ed18f28f3ce8f9dad9c79.tar.gz |
option to populate @ARGV using an anonymous array
Now Perl code can call our App:: code and simulate command line
arguments by passing an arrayref.
Note that we can't just say
local @ARGV = @_ if @_;
because then we can't distinguish between the intent to simulate
passing zero command line arguments and a request to look to @ARGV.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/App/annex_review_unused.pm | 3 | ||||
-rw-r--r-- | lib/App/annex_to_annex.pm | 3 | ||||
-rw-r--r-- | lib/App/annex_to_annex_dropunused.pm | 3 | ||||
-rw-r--r-- | lib/App/annex_to_annex_reinject.pm | 3 |
4 files changed, 12 insertions, 0 deletions
diff --git a/lib/App/annex_review_unused.pm b/lib/App/annex_review_unused.pm index d170601..d92b6d6 100644 --- a/lib/App/annex_review_unused.pm +++ b/lib/App/annex_review_unused.pm @@ -39,6 +39,9 @@ for that command. =cut sub main { + shift if $_[0] and ref $_[0] eq ""; # in case main called as a class method + local @ARGV = @{ $_[0] } if $_[0] and ref $_[0] ne ""; + my $annex = Git::Annex->new; my $just_print = 0; diff --git a/lib/App/annex_to_annex.pm b/lib/App/annex_to_annex.pm index 29cd3f7..56ea2d8 100644 --- a/lib/App/annex_to_annex.pm +++ b/lib/App/annex_to_annex.pm @@ -42,6 +42,9 @@ that command. =cut sub main { + shift if $_[0] and ref $_[0] eq ""; # in case main called as a class method + local @ARGV = @{ $_[0] } if $_[0] and ref $_[0] ne ""; + # only support v7 because supporting v5 too would make things quite # complex. require git-annex >=7.20191009 because it will refuse to # work in v5 repos, and because it supports `git annex find --unlocked` diff --git a/lib/App/annex_to_annex_dropunused.pm b/lib/App/annex_to_annex_dropunused.pm index 89b16b5..23c8851 100644 --- a/lib/App/annex_to_annex_dropunused.pm +++ b/lib/App/annex_to_annex_dropunused.pm @@ -47,6 +47,9 @@ documentation for that command. =cut sub main { + shift if $_[0] and ref $_[0] eq ""; # in case main called as a class method + local @ARGV = @{ $_[0] } if $_[0] and ref $_[0] ne ""; + my $annex = Git::Annex->new; my @to_drop; diff --git a/lib/App/annex_to_annex_reinject.pm b/lib/App/annex_to_annex_reinject.pm index c208d05..a857194 100644 --- a/lib/App/annex_to_annex_reinject.pm +++ b/lib/App/annex_to_annex_reinject.pm @@ -40,6 +40,9 @@ documentation for that command. =cut sub main { + shift if $_[0] and ref $_[0] eq ""; # in case main called as a class method + local @ARGV = @{ $_[0] } if $_[0] and ref $_[0] ne ""; + die "usage: annex-to-annex-reinject SOURCEANNEX DESTANNEX\n" unless @ARGV == 2; |