setpgrp 0, 0 if $Config{d_setpgrp};
-my $root = $ENV{GIT_DIR};
-$root = cwd unless defined $root;
-
my $ar = App::Rgit->new(
git => undef, # Autodiscovery
- root => $root,
+ root => undef, # Autodiscovery
cmd => $cmd,
args => \@ARGV,
policy => $policy,
use warnings;
use Carp (); # confess
-use Cwd (); # abs_path
+use Cwd (); # cwd, abs_path
use File::Spec (); # canonpath, catfile, path
use App::Rgit::Repository;
my %args = @_;
- my $root = $args{root};
- return unless defined $root and -d $root;
+ my $root = defined $args{root}
+ ? $args{root}
+ : defined $ENV{GIT_DIR}
+ ? $ENV{GIT_DIR}
+ : Cwd::cwd;
+ Carp::confess("Invalid root directory") unless -d $root;
$root = File::Spec->canonpath(Cwd::abs_path($root));
my $git;
use Cwd (); # cwd
use File::Spec (); # catdir
-use Test::More tests => 43;
+use Test::More tests => 44;
use App::Rgit;
local $SIG{__WARN__} = sub { die @_ };
my $res = eval {
- App::Rgit->new()
+ local $ENV{GIT_DIR};
+ App::Rgit->new();
};
-is $@, '', "App::Rgit->new(): no root: doesn't croak";
-is $res, undef, 'App::Rgit->new(): no root: returns undef';
+is $@, '', "App::Rgit->new(): no root, no GIT_DIR: doesn't croak";
+isa_ok $res,'App::Rgit','App::Rgit->new(): no root, no GIT_DIR: returns object';
+
+$res = eval {
+ local $ENV{GIT_DIR} = Cwd::cwd;
+ App::Rgit->new();
+};
+is $@, '', "App::Rgit->new(): no root: doesn't croak";
+isa_ok $res, 'App::Rgit', 'App::Rgit->new(): no root: returns object';
$res = eval {
App::Rgit->new(
root => $0,
);
};
-is $@, '', "App::Rgit->new(): wrong root: doesn't croak";
-is $res, undef, 'App::Rgit->new(): wrong root: returns undef';
+like $@, qr/Invalid root directory/, 'App::Rgit->new(): wrong root: croaks';
$res = eval {
local $ENV{GIT_EXEC_PATH};