2015-08-17 14:18:07 +02:00
|
|
|
|
#! /usr/bin/env perl
|
2015-06-23 00:14:49 +02:00
|
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
|
use utf8;
|
|
|
|
|
use Hydra::Plugin;
|
|
|
|
|
use Hydra::Helper::Nix;
|
|
|
|
|
use Hydra::Helper::PluginHooks;
|
|
|
|
|
|
|
|
|
|
STDERR->autoflush(1);
|
|
|
|
|
binmode STDERR, ":encoding(utf8)";
|
|
|
|
|
|
|
|
|
|
my $config = getHydraConfig();
|
|
|
|
|
|
|
|
|
|
my $db = Hydra::Model::DB->new();
|
|
|
|
|
|
|
|
|
|
my @plugins = Hydra::Plugin->instantiate(db => $db, config => $config);
|
|
|
|
|
|
2016-03-11 21:48:31 -05:00
|
|
|
|
my $cmd = shift @ARGV or die "Syntax: hydra-notify CMD BUILD-ID [BUILD-IDs...]\n";
|
2015-06-23 00:14:49 +02:00
|
|
|
|
|
2016-03-11 21:48:31 -05:00
|
|
|
|
my $buildId = shift @ARGV or die;
|
|
|
|
|
my $build = $db->resultset('Builds')->find($buildId)
|
|
|
|
|
or die "build $buildId does not exist\n";
|
|
|
|
|
if ($cmd eq "build-finished") {
|
2015-06-23 00:14:49 +02:00
|
|
|
|
my @dependents;
|
|
|
|
|
foreach my $id (@ARGV) {
|
|
|
|
|
my $dep = $db->resultset('Builds')->find($id)
|
|
|
|
|
or die "build $id does not exist\n";
|
|
|
|
|
push @dependents, $dep;
|
|
|
|
|
}
|
|
|
|
|
notifyBuildFinished(\@plugins, $build, [@dependents]);
|
2016-03-11 21:48:31 -05:00
|
|
|
|
} elsif ($cmd eq "build-started") {
|
|
|
|
|
notifyBuildStarted(\@plugins, $build);
|
2015-06-23 00:14:49 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
die "unknown action ‘$cmd’";
|
|
|
|
|
}
|