summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2020-02-08 00:14:10 -0700
committerSean Whitton <spwhitton@spwhitton.name>2020-02-08 00:14:10 -0700
commit2a1c7ef7c020dd3ed47ed18f28f3ce8f9dad9c79 (patch)
tree6ee6fbf4dca686721b29e92e8358eeef4290e89e /lib
parent335ce93a4ae9c97ebdb22a3f0349796ef3654c3f (diff)
downloadp5-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.pm3
-rw-r--r--lib/App/annex_to_annex.pm3
-rw-r--r--lib/App/annex_to_annex_dropunused.pm3
-rw-r--r--lib/App/annex_to_annex_reinject.pm3
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;