This host is deprecated. Change-Id: Ibbf1e300ae8b136bb3ce3669864045e6ea7eff23 Reviewed-on: https://cl.tvl.fyi/c/depot/+/826 Reviewed-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
# TODO(tazjin): Generalise this and move to //ops/nixos
 | 
						|
{ depot, lib, ... }:
 | 
						|
 | 
						|
let
 | 
						|
  inherit (builtins) foldl';
 | 
						|
 | 
						|
  systemFor = configs: (depot.third_party.nixos {
 | 
						|
    configuration = lib.fix(config:
 | 
						|
      foldl' lib.recursiveUpdate {} (map (c: c config) configs)
 | 
						|
    );
 | 
						|
  }).system;
 | 
						|
 | 
						|
  caseFor = hostname: ''
 | 
						|
    ${hostname})
 | 
						|
      echo "Rebuilding NixOS for //users/tazjin/nixos/${hostname}"
 | 
						|
      system=$(nix-build -E '(import <depot> {}).users.tazjin.nixos.${hostname}System' --no-out-link)
 | 
						|
      ;;
 | 
						|
  '';
 | 
						|
 | 
						|
  rebuilder = 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 "camden"}
 | 
						|
    ${caseFor "frog"}
 | 
						|
    *)
 | 
						|
      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
 | 
						|
  '';
 | 
						|
in {
 | 
						|
  inherit rebuilder;
 | 
						|
 | 
						|
  camdenSystem = systemFor [ depot.users.tazjin.nixos.camden ];
 | 
						|
  frogSystem = systemFor [ depot.users.tazjin.nixos.frog ];
 | 
						|
}
 |