use strict;
use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : ();
-use File::Temp ();
-use File::Spec ();
-
BEGIN {
our ($VERSION, @ISA, @EXPORT, @EXPORT_OK);
=cut
-use Carp qw(carp croak); # but croak is bad - throw instead
+sub carp { require Carp; goto &Carp::carp }
+sub croak { require Carp; goto &Carp::croak }
use Git::LoadCPAN::Error qw(:try);
-use Cwd qw(abs_path cwd);
-use IPC::Open2 qw(open2);
-use Fcntl qw(SEEK_SET SEEK_CUR);
-use Time::Local qw(timegm);
}
$dir = undef;
};
+ require Cwd;
if ($dir) {
+ require File::Spec;
File::Spec->file_name_is_absolute($dir) or $dir = $opts{Directory} . '/' . $dir;
- $opts{Repository} = abs_path($dir);
+ $opts{Repository} = Cwd::abs_path($dir);
# If --git-dir went ok, this shouldn't die either.
my $prefix = $search->command_oneline('rev-parse', '--show-prefix');
- $dir = abs_path($opts{Directory}) . '/';
+ $dir = Cwd::abs_path($opts{Directory}) . '/';
if ($prefix) {
if (substr($dir, -length($prefix)) ne $prefix) {
throw Error::Simple("rev-parse confused me - $dir does not have trailing $prefix");
throw Error::Simple("fatal: Not a git repository: $dir");
}
- $opts{Repository} = abs_path($dir);
+ $opts{Repository} = Cwd::abs_path($dir);
}
delete $opts{Directory};
my $cwd_save = undef;
if ($self) {
shift;
- $cwd_save = cwd();
+ require Cwd;
+ $cwd_save = Cwd::cwd();
_setup_git_cmd_env($self);
}
- $pid = open2($in, $out, 'git', @_);
+ require IPC::Open2;
+ $pid = IPC::Open2::open2($in, $out, 'git', @_);
chdir($cwd_save) if $cwd_save;
return ($pid, $in, $out, join(' ', @_));
}
my $t = shift || time;
my @t = localtime($t);
$t[5] += 1900;
- my $gm = timegm(@t);
+ require Time::Local;
+ my $gm = Time::Local::timegm(@t);
my $sign = qw( + + - )[ $gm <=> $t ];
return sprintf("%s%02d%02d", $sign, (gmtime(abs($t - $gm)))[2,1]);
}
my $n = $name;
$n =~ s/\W/_/g; # no strange chars
+ require File::Temp;
($$temp_fd, $fname) = File::Temp::tempfile(
"Git_${n}_XXXXXX", UNLINK => 1, DIR => $tmpdir,
) or throw Error::Simple("couldn't open new temp file");
truncate $temp_fd, 0
or throw Error::Simple("couldn't truncate file");
- sysseek($temp_fd, 0, SEEK_SET) and seek($temp_fd, 0, SEEK_SET)
+ sysseek($temp_fd, 0, Fcntl::SEEK_SET()) and seek($temp_fd, 0, Fcntl::SEEK_SET())
or throw Error::Simple("couldn't seek to beginning of file");
- sysseek($temp_fd, 0, SEEK_CUR) == 0 and tell($temp_fd) == 0
+ sysseek($temp_fd, 0, Fcntl::SEEK_CUR()) == 0 and tell($temp_fd) == 0
or throw Error::Simple("expected file position to be reset");
}