about summary refs log tree commit diff
path: root/pkgs/servers/klipper
diff options
context:
space:
mode:
authorVan Tuan Vo <mail@tuan-vo.de>2022-03-21 21:04:23 +0100
committerVan Tuan Vo <mail@tuan-vo.de>2022-03-21 21:51:10 +0100
commitc49f15e87b09fc26b6150dbf48e26d1381460f74 (patch)
tree25974c409f8bc58ac98ee504c96ced3ec16e8038 /pkgs/servers/klipper
parent72871a3596632c150fb896061661264f29fdada6 (diff)
klipper-firmware: Fix IFD error and minor refactoring
Diffstat (limited to 'pkgs/servers/klipper')
-rw-r--r--pkgs/servers/klipper/klipper-firmware.nix12
-rw-r--r--pkgs/servers/klipper/klipper-flash.nix13
-rw-r--r--pkgs/servers/klipper/klipper-genconf.nix5
3 files changed, 12 insertions, 18 deletions
diff --git a/pkgs/servers/klipper/klipper-firmware.nix b/pkgs/servers/klipper/klipper-firmware.nix
index 832886c13fe70..ccff83d9d58a7 100644
--- a/pkgs/servers/klipper/klipper-firmware.nix
+++ b/pkgs/servers/klipper/klipper-firmware.nix
@@ -49,18 +49,14 @@
     mkdir -p $out
     cp ./.config $out/config
     cp -r out/* $out
-
-    if ${lib.boolToString (!isNull flashDevice)}; then
-      make FLASH_DEVICE=${toString flashDevice} OUT=$out/ KCONFIG_CONFIG=$out/config flash
-    fi
-  '';
+  '' + lib.optionalString (flashDevice != null) "make FLASH_DEVICE=${toString flashDevice} OUT=$out/ KCONFIG_CONFIG=$out/config flash";
 
   dontFixup = true;
 
-  meta = {
+  meta = with lib; {
     inherit (klipper.meta) homepage license;
     description = "Firmware part of Klipper";
-    maintainers = with lib.maintainers; [ vtuan10 ];
-    platforms = lib.platforms.linux;
+    maintainers = with maintainers; [ vtuan10 ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/klipper/klipper-flash.nix b/pkgs/servers/klipper/klipper-flash.nix
index c81485115cc88..a9c6ecdac4062 100644
--- a/pkgs/servers/klipper/klipper-flash.nix
+++ b/pkgs/servers/klipper/klipper-flash.nix
@@ -9,11 +9,11 @@
 , stm32flash
 , mcu ? "mcu"
 , flashDevice ? "/dev/null"
+, firmwareConfig ? ./simulator.cfg
 }:
 let
-  firmwareConfig = builtins.readFile "${klipper-firmware}/config";
-  isNotSupported = with builtins; isNull (match ''^.*CONFIG_BOARD_DIRECTORY="(avr|stm32|lpc176x)".*$'' firmwareConfig);
-  isNotStm = with builtins; isNull (match ''^.*CONFIG_BOARD_DIRECTORY="(stm32)".*$'' firmwareConfig);
+  isNotSupported = with builtins; isNull (match ''^.*CONFIG_BOARD_DIRECTORY="(avr|stm32|lpc176x)".*$'' (readFile firmwareConfig));
+  isNotStm = with builtins; isNull (match ''^.*CONFIG_BOARD_DIRECTORY="(stm32)".*$'' (readFile firmwareConfig));
 in
 writeShellApplication {
   name = "klipper-flash-${mcu}";
@@ -22,6 +22,7 @@ writeShellApplication {
     avrdude
     stm32flash
     pkgsCross.avr.stdenv.cc
+    gnumake
   ];
   text = ''
     NOT_SUPPORTED=${lib.boolToString isNotSupported}
@@ -31,12 +32,10 @@ writeShellApplication {
       printf "Please use the compiled firmware at ${klipper-firmware} and flash it using the tools provided for your microcontroller."
       exit 1
     fi
-    pushd ${klipper.src}
     if $NOT_STM; then
-      ${gnumake}/bin/make FLASH_DEVICE="${toString flashDevice}" OUT="${klipper-firmware}/" KCONFIG_CONFIG="${klipper-firmware}/config" flash
+      make -C ${klipper.src} FLASH_DEVICE="${toString flashDevice}" OUT="${klipper-firmware}/" KCONFIG_CONFIG="${klipper-firmware}/config" flash
     else
-      ${gnumake}/bin/make FLASH_DEVICE="${toString flashDevice}" OUT="${klipper-firmware}/" KCONFIG_CONFIG="${klipper-firmware}/config" serialflash
+      make -C ${klipper.src} FLASH_DEVICE="${toString flashDevice}" OUT="${klipper-firmware}/" KCONFIG_CONFIG="${klipper-firmware}/config" serialflash
     fi
-    popd
   '';
 }
diff --git a/pkgs/servers/klipper/klipper-genconf.nix b/pkgs/servers/klipper/klipper-genconf.nix
index 52c0d1e142169..42eb519e8c196 100644
--- a/pkgs/servers/klipper/klipper-genconf.nix
+++ b/pkgs/servers/klipper/klipper-genconf.nix
@@ -8,13 +8,12 @@
   runtimeInputs = [
     python2
     pkgsCross.avr.stdenv.cc
+    gnumake
   ];
   text = ''
     CURRENT_DIR=$(pwd)
     TMP=$(mktemp -d)
-    pushd ${klipper.src}
-    ${gnumake}/bin/make OUT="$TMP" KCONFIG_CONFIG="$CURRENT_DIR/config" menuconfig
-    popd
+    make -C ${klipper.src} OUT="$TMP" KCONFIG_CONFIG="$CURRENT_DIR/config" menuconfig
     rm -rf "$TMP" config.old
     printf "\nYour firmware configuration for klipper:\n\n"
     cat config