about summary refs log tree commit diff
path: root/users/grfn/system/system/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/grfn/system/system/default.nix')
-rw-r--r--users/grfn/system/system/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/users/grfn/system/system/default.nix b/users/grfn/system/system/default.nix
new file mode 100644
index 0000000000..9db9570ea0
--- /dev/null
+++ b/users/grfn/system/system/default.nix
@@ -0,0 +1,77 @@
+args @ { depot, pkgs, ... }:
+
+rec {
+  chupacabra = import ./machines/chupacabra.nix;
+
+  chupacabraSystem = (depot.third_party.nixos {
+    configuration = chupacabra;
+  }).system;
+
+  mugwump = import ./machines/mugwump.nix;
+
+  mugwumpSystem = (depot.third_party.nixos {
+    configuration = mugwump;
+  }).system;
+
+  roswell = import ./machines/roswell.nix;
+
+  roswellSystem = (depot.ops.nixos.nixosFor ({ ... }: {
+    imports = [
+      ./machines/roswell.nix
+      "${pkgs.home-manager.src}/nixos"
+    ];
+
+    home-manager.users.grfn = { config, lib, ... }: {
+      imports = [ ../home/machines/roswell.nix ];
+      lib.depot = depot;
+      _module.args.pkgs = lib.mkForce
+        (import pkgs.path
+          (lib.filterAttrs (n: v: v != null) config.nixpkgs));
+    };
+  })).system;
+
+  yeren = import ./machines/yeren.nix;
+
+  yerenSystem = (depot.ops.nixos.nixosFor yeren).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/grfn/nixos/${hostname}"
+          system=$(nix-build -E '(import ${depotPath} {}).users.grfn.system.system.${hostname}' --no-out-link)
+          ;;
+      '';
+    in pkgs.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
+    '';
+}