Make one-click installs work for binary cache stores
This requires setting binary_cache_public_uri in hydra.conf.
This commit is contained in:
parent
44ef743d84
commit
62c6cca937
|
@ -3,7 +3,7 @@ package Hydra::Base::Controller::NixChannel;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use base 'Hydra::Base::Controller::REST';
|
use base 'Hydra::Base::Controller::REST';
|
||||||
use List::MoreUtils qw(all);
|
use List::MoreUtils qw(any);
|
||||||
use Nix::Store;
|
use Nix::Store;
|
||||||
use Hydra::Helper::Nix;
|
use Hydra::Helper::Nix;
|
||||||
use Hydra::Helper::CatalystUtils;
|
use Hydra::Helper::CatalystUtils;
|
||||||
|
@ -90,10 +90,8 @@ sub pkg : Chained('nix') PathPart Args(1) {
|
||||||
|| notFound($c, "No such package in this channel.");
|
|| notFound($c, "No such package in this channel.");
|
||||||
}
|
}
|
||||||
|
|
||||||
requireLocalStore($c);
|
|
||||||
|
|
||||||
gone($c, "Build " . $c->stash->{build}->id . " is no longer available.")
|
gone($c, "Build " . $c->stash->{build}->id . " is no longer available.")
|
||||||
unless all { isValidPath($_->path) } $c->stash->{build}->buildoutputs->all;
|
if isLocalStore() && any { !isValidPath($_->path) } $c->stash->{build}->buildoutputs->all;
|
||||||
|
|
||||||
$c->stash->{current_view} = 'NixPkg';
|
$c->stash->{current_view} = 'NixPkg';
|
||||||
|
|
||||||
|
|
|
@ -432,10 +432,12 @@ sub nix : Chained('buildChain') PathPart('nix') CaptureArgs(0) {
|
||||||
notFound($c, "Build cannot be downloaded as a closure or Nix package.")
|
notFound($c, "Build cannot be downloaded as a closure or Nix package.")
|
||||||
if $build->buildproducts->search({type => "nix-build"})->count == 0;
|
if $build->buildproducts->search({type => "nix-build"})->count == 0;
|
||||||
|
|
||||||
|
if (isLocalStore) {
|
||||||
foreach my $out ($build->buildoutputs) {
|
foreach my $out ($build->buildoutputs) {
|
||||||
notFound($c, "Path " . $out->path . " is no longer available.")
|
notFound($c, "Path " . $out->path . " is no longer available.")
|
||||||
unless isValidPath($out->path);
|
unless isValidPath($out->path);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$c->stash->{channelBuilds} = $c->model('DB::Builds')->search(
|
$c->stash->{channelBuilds} = $c->model('DB::Builds')->search(
|
||||||
{ id => $build->id },
|
{ id => $build->id },
|
||||||
|
|
|
@ -11,9 +11,7 @@ sub process {
|
||||||
|
|
||||||
my $build = $c->stash->{build};
|
my $build = $c->stash->{build};
|
||||||
|
|
||||||
requireLocalStore($c);
|
my $channelUri = $c->config->{binary_cache_public_uri} // $c->uri_for('/');
|
||||||
|
|
||||||
my $channelUri = $c->uri_for('/');
|
|
||||||
|
|
||||||
# FIXME: add multiple output support
|
# FIXME: add multiple output support
|
||||||
my $s = "NIXPKG1 http://invalid.org/"
|
my $s = "NIXPKG1 http://invalid.org/"
|
||||||
|
|
Loading…
Reference in a new issue