{ lib, self, ... }: { # Create a NixOS module option on a single line. mkOpt = type: default: description: lib.mkOption {inherit type default description;}; # Create a simple bool options 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 }