config/pkgs/mk-nspawn-setup/default.nix

33 lines
777 B
Nix

{ lib
, pkgs
}:
# this assumes github:tfc/nspawn-nixos nspawn-tarball.nix is mixed into it
nixosConfiguration:
let
hostname = nixosConfiguration.config.networking.hostName;
inherit (nixosConfiguration.config.nixpkgs) system;
setup = pkgs.substituteAll {
src = ./setup-nspawn.sh;
isExecutable = true;
inherit hostname;
};
inherit (nixosConfiguration.config.system.build) tarball;
in
pkgs.runCommandNoCC "nspawn-setup-${hostname}.sh" {
nativeBuildInputs = with pkgs; [ makeself ];
} ''
mkdir -p archive/
ln -s ${setup} archive/setup.sh
ln -s ${tarball}/tarball/nixos-system-${system}.tar.xz archive/nixos-${hostname}.tar.xz
echo tarball: ${tarball}
makeself --nocomp --follow archive/ $out "setup-nixos-nspawn-${hostname}" ./setup.sh
''