#ident $Id: cvslib.pl,v 2.1 2009/11/06 10:26:22 lukeh Exp $
$CVSVERSIONDIR = $ENV{'CVSVERSIONDIR'};
$INFOFILE = $CVSVERSIONDIR ne "" ? $CVSVERSIONDIR."/CVSVersionInfo.txt" : "CVSVersionInfo.txt";
$DISTDIR = $ENV{'HOME'} . "/dist";
sub getSGSFile
{
if (-f "version.h") { return "version.h"; }
elsif (-f "vers.c") { return "vers.c"; }
else { return; }
}
sub nameToTag
{
local($tag) = shift;
$tag =~ s/\./\~/g;
return ($tag);
}
sub getCVSRepository
{
if (!(-d "CVS"))
{
return;
}
open(ROOT, "CVS/Root") || return;
open(REPOSITORY, "CVS/Repository") || return;
local ($CVSROOT) = <ROOT>;
chop ($CVSROOT);
if ($CVSROOT =~ '^:') {
local(@C) = split(/:/, $CVSROOT);
$CVSROOT = $C[3];
}
local ($CVSREPOSITORY) = <REPOSITORY>;
chop ($CVSREPOSITORY);
close(ROOT);
close(REPOSITORY);
if ($CVSREPOSITORY =~ /^\//)
{
$CVSREPOSITORY =~ s/^$CVSROOT\///g;
}
return($CVSREPOSITORY);
}
sub getCVSVersionInfo
{
local ($VERSION, $PROJECT);
if (-f $INFOFILE)
{
open(INFOFILE, $INFOFILE) || return;
while(<INFOFILE>)
{
if (/^#/) { next; }
local ($key, $value) = split(/:\s+/);
chop($value);
if ($key eq "ProjectVersion")
{
$VERSION = $value;
}
elsif ($key eq "ProjectName")
{
$PROJECT = $value;
}
}
}
close(INFOFILE);
return "$PROJECT-$VERSION";
}