package Cvs_Test;
use strict;
use warnings;
use Cvs::Simple::Config;
use Cwd;
use File::Path;
use File::Spec::Functions qw(curdir catdir splitdir rel2abs tmpdir updir);
sub CVSBIN () { return Cvs::Simple::Config::CVS_BIN }
sub CVSDIR () { return tmpdir() }
sub TMPL () { 'repository' }
sub REP () { 'cvsdir' }
sub LOCAL () { sprintf(':local:%s', catdir(CVSDIR, REP) ) }
sub cvs_make {
my($cwd) = shift;
unless((splitdir($cwd))[-1] eq 't') {
$cwd = rel2abs(catdir($cwd, 't'));
}
chdir($cwd) or die "Failed to chdir to $cwd:$!";
system( CVSBIN, '-d', LOCAL, 'init' );
my(@dir) = splitdir(rel2abs($cwd));
my($repldir) = catdir(@dir[0 .. @dir-2], TMPL, 'Add');
chdir($repldir)
or die "Can\'t chdir:$!";
system( CVSBIN, '-d', LOCAL, 'import', '-m', q[""], qw(Add V1 E2) );
chdir($cwd)
or die "Can\'t chdir:$!";
return;
}
sub cvs_clean {
my($cwd) = rel2abs(curdir());
unless((splitdir($cwd))[-1] eq 't') {
chdir(catdir($cwd, 't'))
or die "Failed to chdir:$!";
$cwd = curdir();
}
chdir($cwd) or die "Can\'t chdir to $cwd:$!";
rmtree([ 'Add', catdir(tmpdir(),REP) ]);
return;
}
1;
__END__