summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
-rwxr-xr-xt/21_annex-to-annex.t5
5 files changed, 16 insertions, 1 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;
diff --git a/t/21_annex-to-annex.t b/t/21_annex-to-annex.t
index 76ddd27..9589b59 100755
--- a/t/21_annex-to-annex.t
+++ b/t/21_annex-to-annex.t
@@ -56,7 +56,10 @@ with_temp_annexes {
with_temp_annexes {
my (undef, $source1, $source2, $dest) = @_;
- run_bin qw(annex-to-annex --commit source1/foo source2/other dest);
+ # also implicitly test, here, that we can invoke the program by
+ # passing a subroutine reference when invoking main as a class
+ # method
+ App::annex_to_annex->main([qw(--commit source1/foo source2/other dest)]);
@output = $source1->RUN(qw(log -1 --oneline --name-status));
like $output[0], qr/migrated by annex-to-annex/,