tvl-depot/tools/nixery/build-image/default.nix
Vincent Ambo 6d718bf271 refactor(server): Use wrapper script to avoid path dependency
Instead of requiring the server component to be made aware of the
location of the Nix builder via environment variables, this commit
introduces a wrapper script for the builder that can simply exist on
the builders $PATH.

This is one step towards a slightly nicer out-of-the-box experience
when using `nix-build -A nixery-bin`.
2019-08-14 00:02:04 +01:00

40 lines
1.3 KiB
Nix

# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This file builds the tool used to calculate layer distribution and
# moves the files needed to call the Nix builds at runtime in the
# correct locations.
{ buildGoPackage, lib, nix, writeShellScriptBin }:
let
group-layers = buildGoPackage {
name = "group-layers";
goDeps = ./go-deps.nix;
src = ./.;
goPackagePath = "github.com/google/nixery/group-layers";
meta = {
description = "Tool to group a set of packages into container image layers";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.tazjin ];
};
};
# Wrapper script which is called by the Nixery server to trigger an
# actual image build.
in writeShellScriptBin "nixery-build-image" ''
exec ${nix}/bin/nix-build --show-trace --no-out-link "$@" ${./build-image.nix}
''