This commit is contained in:
Ricardo (XenGi) Band 2026-05-30 19:44:47 +02:00
commit 9cca05f65d
No known key found for this signature in database

View file

@ -22,6 +22,7 @@
flake-utils.lib.eachDefaultSystem ( flake-utils.lib.eachDefaultSystem (
system: system:
let let
idfVersion = "v6.0.1";
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
overlays = [ (import "${nixpkgs-esp-dev}/overlay.nix") ]; overlays = [ (import "${nixpkgs-esp-dev}/overlay.nix") ];
@ -52,7 +53,7 @@
echo "$PORT" echo "$PORT"
''; '';
esp-idf = pkgs.esp-idf-full.override { esp-idf = pkgs.esp-idf-full.override {
rev = "v6.0.1"; rev = idfVersion;
sha256 = "sha256-4KJa686qc+u7XkF/GS2o53l1SpwP2EmdqAn/qmlL1yU="; sha256 = "sha256-4KJa686qc+u7XkF/GS2o53l1SpwP2EmdqAn/qmlL1yU=";
}; };
in in
@ -60,18 +61,21 @@
apps = { apps = {
menuconfig = { menuconfig = {
type = "app"; type = "app";
meta.description = "⚙️ Open ESP-IDF configuration menu (sdkconfig)";
program = "${pkgs.writeShellScriptBin "idf-menuconfig" '' program = "${pkgs.writeShellScriptBin "idf-menuconfig" ''
${esp-idf}/tools/idf.py menuconfig ${esp-idf}/tools/idf.py menuconfig
''}/bin/idf-menuconfig"; ''}/bin/idf-menuconfig";
}; };
build = { build = {
type = "app"; type = "app";
meta.description = "🧱 Build ESP32 firmware using ESP-IDF ${idfVersion}";
program = "${pkgs.writeShellScriptBin "idf-build" '' program = "${pkgs.writeShellScriptBin "idf-build" ''
${esp-idf}/tools/idf.py build ${esp-idf}/tools/idf.py build
''}/bin/idf-build"; ''}/bin/idf-build";
}; };
flash = { flash = {
type = "app"; type = "app";
meta.description = "⚡ Flash firmware to ESP32-S3 over auto-detected serial port";
program = "${pkgs.writeShellScriptBin "idf-flash" '' program = "${pkgs.writeShellScriptBin "idf-flash" ''
set -euo pipefail set -euo pipefail
@ -83,6 +87,7 @@
}; };
monitor = { monitor = {
type = "app"; type = "app";
meta.description = "📡 Open serial monitor for ESP32 logs";
program = "${pkgs.writeShellScriptBin "idf-monitor" '' program = "${pkgs.writeShellScriptBin "idf-monitor" ''
set -euo pipefail set -euo pipefail
@ -94,22 +99,24 @@
}; };
clean = { clean = {
type = "app"; type = "app";
meta.description = "🧹 Clean ESP-IDF build directory";
program = "${pkgs.writeShellScriptBin "idf-clean" '' program = "${pkgs.writeShellScriptBin "idf-clean" ''
${esp-idf}/tools/idf.py clean ${esp-idf}/tools/idf.py clean
''}/bin/idf-clean"; ''}/bin/idf-clean";
}; };
full = { full = {
type = "app"; type = "app";
meta.description = "🚀 Full pipeline: build → flash → monitor";
program = "${pkgs.writeShellScriptBin "idf-full" '' program = "${pkgs.writeShellScriptBin "idf-full" ''
set -euo pipefail set -euo pipefail
PORT=$(${autoSerialPort}/bin/esp-port) PORT=$(${autoSerialPort}/bin/esp-port)
echo "Building..." echo "🧱 Building..."
${esp-idf}/tools/idf.py build ${esp-idf}/tools/idf.py build
echo "Flashing on $PORT..." echo "⚡ Flashing on $PORT..."
${esp-idf}/tools/idf.py -p "$PORT" flash ${esp-idf}/tools/idf.py -p "$PORT" flash
echo "Starting monitor..." echo "📡 Starting monitor..."
${esp-idf}/tools/idf.py -p "$PORT" monitor ${esp-idf}/tools/idf.py -p "$PORT" monitor
''}/bin/idf-full"; ''}/bin/idf-full";
}; };
@ -129,4 +136,3 @@
} }
); );
} }