perkeep/misc/devlib.pl

45 lines
999 B
Perl

use strict;
use Time::HiRes ();
use FindBin qw($Bin);
sub build_bin {
my $target = shift;
my $final_bin = find_bin($target);
my $full_target = $target;
$full_target =~ s!^\./((cmd|server)/(\w+))$!camlistore.org/$1! or die "Bogus target $target";
my $mtime = 0;
if (-f $final_bin) {
$mtime = (stat($final_bin))[9];
}
print STDERR "Building $full_target ...\n";
my $t0 = Time::HiRes::time();
system("go", "run", "make.go",
"--quiet",
"--embed_static=false",
"--sqlite=false",
"--if_mods_since=$mtime",
"--targets=$full_target")
and die "go install $target failed";
my $td = Time::HiRes::time() - $t0;
print STDERR "Build/init took " . sprintf("%0.03f", $td) . " seconds.\n";
return $final_bin;
}
sub find_bin {
my $target = shift;
$target =~ s!.+/!!;
my $bin = find_gobin();
return "$bin/$target";
}
sub find_gobin {
return "$Bin/bin";
}
1;