aboutsummaryrefslogtreecommitdiff
path: root/build/download-stuff.pl
blob: 3ed2ba9afcef4b17e764cc4622f6bdfcffaf54b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/perl
use strict;
use warnings;

my @modules = qw(
    http://github.com/rakudo/rakudo
    http://github.com/jnthn/zavolaj
    http://github.com/jnthn/blizkost
    http://github.com/mberends/MiniDBI
    http://github.com/masak/svg
    http://github.com/moritz/svg-plot
    http://github.com/moritz/Math-RungeKutta
    http://github.com/moritz/Math-Model
    http://github.com/mattw/form
    http://github.com/tadzik/perl6-Config-INI
    http://github.com/tadzik/perl6-File-Find
    http://github.com/tadzik/perl6-Term-ANSIColor
    http://github.com/arnsholt/Algorithm-Viterbi
    http://gitorious.org/http-daemon/mainline
);

chdir 'dist' or die "Can't chdir to build dir: $!";

for my $m (@modules) {
    my $git_url = $m;
    $git_url =~ s/^http/git/;
    $git_url .= '.git';
    my $return = system 'git', 'clone', $git_url;
    if ($return) {
        if ($? == -1) {
            warn "Error while running 'git clone $git_url': $?\n";
        } else {
            warn "Git returned unsuccessfully with return code "
                    . ($? >> 8) . "\n";
        }
        next;
    }
}

# for projects of which we want to ship specific tags or branches
# the right-hand side can be anything that 'git checkout' accepts,
# so a branch name, tag name, sha1 sum, HEAD~3 ( not quite sane, 
# but possible )
#
#  XXX we want rakudo 2010.07 of course, but that will give an error now
my %tags = ( rakudo => '2010.07' );

while (my ($project, $version) = each %tags) {
    chdir $project or die "Can't chdir to '$project': $!";
    system('git', 'checkout', $version) == 0
        or die "Can't git checkout $version: $?";
    chdir '..' or die "Can't chdir back to dist/ folder: $!";
}

# TODO: copy docs, build scripts, whatever