puzzlevision/lib/module/default.nix

29 lines
744 B
Nix

{ lib, self, ... }: {
# Create a NixOS module option on a single line.
mkOpt = type: default: description:
lib.mkOption {inherit type default description;};
mkBool = default: description:
lib.mkOption {
inherit default description;
type = lib.types.bool;
};
# Create a module compliant with the NixOS module system.
mkModule =
{
name ? "puzzlevision",
class,
modules,
}: {
_class = class;
# Template: "[path-to-flake]/flake.nix#[class-name]Modules.[module-name]"
# Example: "[path-to-flake]/flake.nix#nixosModules.system.audio"
_file = "${self.outPath}/flake.nix#${class}Modules.${name}";
imports = modules;
};
# TODO: add mkIfElse function
}