64 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib) mkOption;
 | 
						|
  inherit (lib.types) str enum bool package;
 | 
						|
in {
 | 
						|
  options.ooknet.host = {
 | 
						|
    name = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "ooks-generic";
 | 
						|
    };
 | 
						|
    type = mkOption {
 | 
						|
      type = enum ["desktop" "laptop"];
 | 
						|
    };
 | 
						|
    role = mkOption {
 | 
						|
      type = enum ["workstation" "server"];
 | 
						|
    };
 | 
						|
 | 
						|
    boot = {
 | 
						|
      loader = mkOption {
 | 
						|
        type = enum ["systemd" "grub"];
 | 
						|
        default = "systemd";
 | 
						|
      };
 | 
						|
      kernel = mkOption {
 | 
						|
        type = package;
 | 
						|
        default = pkgs.linuxPackages_latest;
 | 
						|
      };
 | 
						|
    };
 | 
						|
    exitNode = mkOption {
 | 
						|
      type = bool;
 | 
						|
      default = false;
 | 
						|
    };
 | 
						|
 | 
						|
    admin = {
 | 
						|
      name = mkOption {
 | 
						|
        type = str;
 | 
						|
        default = "ooks";
 | 
						|
      };
 | 
						|
      shell = mkOption {
 | 
						|
        type = enum ["bash" "zsh" "fish"];
 | 
						|
        default = "fish";
 | 
						|
      };
 | 
						|
      gitName = mkOption {
 | 
						|
        type = str;
 | 
						|
        default = "ooks-io";
 | 
						|
      };
 | 
						|
      gitEmail = mkOption {
 | 
						|
        type = str;
 | 
						|
        default = "ooks@protonmail.com";
 | 
						|
      };
 | 
						|
      homeManager = mkOption {
 | 
						|
        type = bool;
 | 
						|
        default = false;
 | 
						|
        description = ''
 | 
						|
          Home-manager is enabled if ooknet.host.role == "workstation".
 | 
						|
          If host is not a workstation and you would like to enable home-manager
 | 
						|
          enable this option.
 | 
						|
        '';
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |