- my $root = $args{root};
- return unless defined $root and -d $root;
- $root = File::Spec->canonpath(Cwd::abs_path($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(App::Rgit::Utils::abs_path($root));