diff options
Diffstat (limited to 'modules/klipper.nix')
| -rw-r--r-- | modules/klipper.nix | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/klipper.nix b/modules/klipper.nix new file mode 100644 index 0000000..2782bcd --- /dev/null +++ b/modules/klipper.nix @@ -0,0 +1,42 @@ +{ + lib, + pkgs, + config, + ... +}: +let + inherit (lib) mkOption mkIf mkPackageOption types; +in { + options = { + type = mkOption { + type = types.enum [ "klipper" ]; + }; + + klipper = { + klipper-firmware = mkPackageOption pkgs "klipper-firmware" {}; + + mcu = mkOption { + type = types.str; + }; + + firmwareConfig = mkOption { + type = types.path; + }; + + build = { + bin = mkOption { + type = types.path; + default = "${config.klipper.klipper-firmware.override { + inherit (config.klipper) mcu firmwareConfig; + }}/klipper.bin"; + }; + flash = mkOption { + type = types.functionTo <| types.either types.str types.package; + }; + }; + }; + }; + + config = mkIf (config.type == "klipper") { + }; +} |
