Remove old .cvsignore file
[catagits/Test-NoTabs.git] / tools / chimps-client.pl
CommitLineData
fc9e2588 1#!/usr/bin/perl
2use strict;
3use warnings;
4
5use FindBin;
6use lib "$FindBin::Bin/../lib";
7
8use Config;
9use File::Spec;
10use Test::Chimps::Client;
11use Test::TAP::Model::Visual;
12
13chdir "$FindBin::Bin/..";
14
15my @tests = map glob, qw(t/*.t);
16my $start = time;
17my $model = Test::TAP::Model::Visual->new_with_tests(@tests);
18
19my $client = Test::Chimps::Client->new(
20 server => 'http://dev.socklabs.com/cgi-bin/chimps-server.pl',
21 model => $model,
22 report_variables => {
23 archname => $Config{archname},
24 committer => $ENV{USER} || $ENV{USERNAME},
25 osname => $Config{osname},
26 osvers => $Config{osvers},
27 project => 'Test-NoTabs',
28 duration => time - $start,
29 revision => get_revision(),
30 },
31);
32
33my ($status, $msg) = $client->send;
34if (! $status) {
35 print "Error: $msg\n";
36 exit(1);
37}
38
39sub get_revision {
40 return
41 # extract_revision('svk', 'svk info', qr/Mirrored From: .*Rev\. (\d+)/) ||
42 extract_revision('svn', 'svn info', qr/Revision: (\d+)/) ||
43 extract_svn_revision('.svn/entries') ||
44 'unknown';
45}
46
47sub extract_revision {
48 my($cmd, $command, $re) = @_;
49
50 return unless has_command($cmd);
51
52 my $out = qx($command) or return;
53 $out =~ /$re/;
54 return $1;
55}
56
57sub has_command {
58 my $cmd = shift;
59 grep { -e File::Spec->catfile($_, $cmd) } split /:/, $ENV{PATH};
60}
61
62sub extract_svn_revision {
63 my $file = shift;
64 open my($fh), $file or return;
65 while (<$fh>) {
66 /revision="(\d+)"/ and return $1;
67 }
68 return;
69}