summaryrefslogtreecommitdiffstats
path: root/bin/nixos-build
blob: 200f99e4ae6c4221e581242cf2b3e0f66f1004e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#! /bin/sh
#
# build : hostname -> system-path
#
set -euf

host=$1

#target=root@$host

pubkeys=$config_root/pubkeys
nixpkgs=$nixpkgs_root/$host
nixos_config=$config_root/modules/$host
secrets_nix=$secrets_root/$host/nix
secrets_rsync=$secrets_root/$host/rsync

(
  # Notice NIX_PATH used from host
  # Notice secrets required to evaluate configuration
  NIX_PATH=$NIX_PATH:nixos-config=$nixos_config
  NIX_PATH=$NIX_PATH:secrets=$secrets_nix
  export NIX_PATH

  rev=$(nixos-query nixpkgs.rev)
  url=$(nixos-query nixpkgs.url)

  fetchgit "$rev" "$url" tmp/nixpkgs/$host
)

nix-build \
    -I "$nixpkgs" \
    -I pubkeys="$pubkeys" \
    -I nixos-config="$nixos_config" \
    -I retiolum-hosts="$retiolum_hosts" \
    -I secrets="$secrets_nix" \
    -A system \
    --no-out-link \
    '<nixos>'