An ec2 node I'm using as a remote dev box Change-Id: I7d81371ecdc11d6c1b5bc06d1b4f55de534d25ad Reviewed-on: https://cl.tvl.fyi/c/depot/+/2244 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
93 lines
2.1 KiB
Nix
93 lines
2.1 KiB
Nix
args @ { depot, pkgs, ... }:
|
|
|
|
let
|
|
nixpkgs = import pkgs.nixpkgsSrc {};
|
|
in
|
|
|
|
rec {
|
|
chupacabra = import ./machines/chupacabra.nix;
|
|
|
|
chupacabraSystem = (pkgs.nixos {
|
|
configuration = chupacabra;
|
|
}).system;
|
|
|
|
mugwump = import ./machines/mugwump.nix;
|
|
|
|
mugwumpSystem = (pkgs.nixos {
|
|
configuration = mugwump;
|
|
}).system;
|
|
|
|
roswell = import ./machines/roswell.nix;
|
|
|
|
roswellSystem = (pkgs.nixos {
|
|
configuration = { ... }: {
|
|
imports = [
|
|
./machines/roswell.nix
|
|
"${nixpkgs.home-manager.src}/nixos"
|
|
"${depot.depotPath}/ops/nixos/depot.nix"
|
|
];
|
|
inherit depot;
|
|
|
|
home-manager.users.grfn = { config, lib, ... }: {
|
|
imports = [ ../home/machines/roswell.nix ];
|
|
lib.depot = depot;
|
|
_module.args.pkgs = lib.mkForce
|
|
(import pkgs.nixpkgsSrc
|
|
(lib.filterAttrs (n: v: v != null) config.nixpkgs));
|
|
};
|
|
};
|
|
}).system;
|
|
|
|
yeren = import ./machines/yeren.nix;
|
|
|
|
yerenSystem = (pkgs.nixos {
|
|
configuration = { ... }: {
|
|
imports = [
|
|
./machines/yeren.nix
|
|
"${depot.depotPath}/ops/nixos/depot.nix"
|
|
];
|
|
inherit depot;
|
|
};
|
|
}).system;
|
|
|
|
iso = import ./iso.nix args;
|
|
|
|
# Build chupacabra in CI
|
|
meta.targets = [
|
|
"chupacabraSystem"
|
|
"mugwumpSystem"
|
|
"roswellSystem"
|
|
"yerenSystem"
|
|
|
|
"iso"
|
|
];
|
|
|
|
rebuilder =
|
|
let
|
|
depotPath = "/home/grfn/code/depot";
|
|
|
|
caseFor = hostname: ''
|
|
${hostname})
|
|
echo "Rebuilding NixOS for //users/glittershark/nixos/${hostname}"
|
|
system=$(nix-build -E '(import ${depotPath} {}).users.glittershark.system.system.${hostname}' --no-out-link)
|
|
;;
|
|
'';
|
|
in depot.third_party.writeShellScriptBin "rebuilder" ''
|
|
set -ue
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "Oh no! Only root is allowed to rebuild the system!" >&2
|
|
exit 1
|
|
fi
|
|
|
|
case $HOSTNAME in
|
|
${caseFor "chupacabra"}
|
|
*)
|
|
echo "$HOSTNAME is not a known NixOS host!" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
nix-env -p /nix/var/nix/profiles/system --set $system
|
|
$system/bin/switch-to-configuration switch
|
|
'';
|
|
}
|