* Generate a Nix expression for the channel.

[?]
Mar 2, 2009, 5:17 PM
LVJKRTIK5WOWWAZ454B4DCCGETOIQJK5TLOWMZVNY2B4AEGF2GMAC

Dependencies

Change contents

  • edit in src/Hydra/lib/Hydra/Base/Controller/Nix.pm at line 57
    [6.362]
    [7.451]
    }
    sub nixexprs : Chained('nix') PathPart Args(0) {
    my ($self, $c) = @_;
    $c->stash->{current_view} = 'Hydra::View::NixExprs';
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 535
    [3.1510][2.457:520]()
    my @builds = getLatestBuilds($c, $c->model('DB::Builds'));
    [3.1510]
    [3.1510]
    my @builds = getLatestBuilds($c, $c->model('DB::Builds')); # !!! this includes failed builds
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 542
    [2.655]
    [2.655]
    my $pkgName = $build->nixname . "-" . $build->system . "-" . $build->id . ".nixpkg";
    $c->stash->{nixPkgs}->{$pkgName} = $build;
  • file addition: NixExprs.pm (----------)
    [8.646]
    package Hydra::View::NixExprs;
    use strict;
    use base qw/Catalyst::View/;
    use Hydra::Helper::Nix;
    sub process {
    my ($self, $c) = @_;
    my $res = "[\n";
    foreach my $name (keys %{$c->stash->{nixPkgs}}) {
    my $build = $c->stash->{nixPkgs}->{$name};
    $res .= " # $name\n";
    $res .= " { type = \"derivation\";\n";
    $res .= " name = \"" . ($build->resultInfo->releasename or $build->nixname) . "\";\n"; # !!! escaping?
    $res .= " system = \"" . $build->system . "\";\n"; # idem
    $res .= " outPath = " . $build->outpath . ";\n";
    $res .= " meta = {\n";
    $res .= " description = \"" . $build->description . "\";\n"
    if $build->description;
    $res .= " longDescription = \"" . $build->longdescription . "\";\n"
    if $build->longdescription;
    $res .= " license = \"" . $build->license . "\";\n"
    if $build->license;
    $res .= " };\n";
    $res .= " }\n";
    }
    $res .= "]\n";
    $c->response->content_type('text/plain');
    $c->response->body($res);
    return 1;
    }
    1;