|
39 | 39 | # -- Main --
|
40 | 40 |
|
41 | 41 | {
|
| 42 | + my $doCI; |
42 | 43 | my $doHelp;
|
43 | 44 | my $doList;
|
44 | 45 | my $doParents;
|
|
49 | 50 | for my $cmd (@ARGV) {
|
50 | 51 | if ($cmd =~ /^-\w+$/) {
|
51 | 52 | for my $c (split(//, $cmd)) {
|
52 |
| - if ($c eq 'g') { $doSCM = 1; } |
| 53 | + if ($c eq 'c') { $doCI = 1; } |
| 54 | + elsif ($c eq 'g') { $doSCM = 1; } |
53 | 55 | elsif ($c eq 'l') { $doList = 1; }
|
54 | 56 | elsif ($c eq 'p') { $doParents = 1; }
|
55 | 57 | elsif ($c eq 's') { $doStats = 1; }
|
|
58 | 60 | elsif ($c eq 'v') { $verbose = 1; }
|
59 | 61 | }
|
60 | 62 | }
|
| 63 | + elsif ($cmd eq '--ci') { $doCI = 1; } |
61 | 64 | elsif ($cmd eq '--help') { $doHelp = 1; }
|
62 | 65 | elsif ($cmd eq '--list') { $doList = 1; }
|
63 | 66 | elsif ($cmd eq '--parents') { $doParents = 1; }
|
|
69 | 72 | else { warning("Invalid argument: $cmd"); }
|
70 | 73 | }
|
71 | 74 |
|
72 |
| - $doList || $doParents || $doSCM || $doStats || $doTree || ($doHelp = 1); |
| 75 | + $doCI || $doList || $doParents || $doSCM || $doStats || $doTree || |
| 76 | + ($doHelp = 1); |
73 | 77 |
|
74 | 78 | if ($doHelp) {
|
75 | 79 | print STDERR "Usage: sj-hierachy.pl [-glstqv]\n";
|
76 | 80 | print STDERR "\n";
|
| 81 | + print STDERR " -c, --ci : list involved CI URLs\n"; |
77 | 82 | print STDERR " -g, --scm : list involved SCM URLs\n";
|
78 | 83 | print STDERR " -l, --list : list SciJava artifacts\n";
|
79 | 84 | print STDERR " -p, --parents : show table of artifact parents\n";
|
|
87 | 92 | parse_blacklist();
|
88 | 93 | resolve_artifacts();
|
89 | 94 |
|
| 95 | + if ($doCI) { |
| 96 | + list_cis(); |
| 97 | + } |
90 | 98 | if ($doList) {
|
91 | 99 | show_list();
|
92 | 100 | }
|
|
211 | 219 | dump_tree("org.scijava:pom-scijava", 0);
|
212 | 220 | }
|
213 | 221 |
|
| 222 | +# Makes a list of CIs associated with the artifacts. |
| 223 | +sub list_cis() { |
| 224 | + for my $ga (keys %versions) { |
| 225 | + my $version = version($ga); |
| 226 | + $version || next; |
| 227 | + my $ci = ci($ga); |
| 228 | + if (!$ci) { |
| 229 | + warning("No CI for artifact: $ga:$version"); |
| 230 | + next; |
| 231 | + } |
| 232 | + output("$ga: $ci"); |
| 233 | + } |
| 234 | +} |
| 235 | + |
214 | 236 | # Makes a list of SCMs associated with the artifacts.
|
215 | 237 | sub list_scms() {
|
216 | 238 | my %scms;
|
|
315 | 337 | return "$groupId:$artifactId";
|
316 | 338 | }
|
317 | 339 |
|
| 340 | +# Computes the CI of a GA. |
| 341 | +sub ci($) { |
| 342 | + my ($ga) = @_; |
| 343 | + my $xml = pom_xml($ga); |
| 344 | + my $ci = $xml->{ciManagement}->{url}; |
| 345 | + if (!$ci) { |
| 346 | + my $parent = parent($ga); |
| 347 | + return $parent && $parent ne ':' ? ci($parent) : undef; |
| 348 | + } |
| 349 | + return $ci; |
| 350 | +} |
| 351 | + |
318 | 352 | # Computes the SCM of a GA.
|
319 | 353 | sub scm($) {
|
320 | 354 | my ($ga) = @_;
|
|
0 commit comments