aboutsummaryrefslogtreecommitdiff
path: root/modules/klipper.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/klipper.nix')
-rw-r--r--modules/klipper.nix42
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") {
+ };
+}