🚀
This commit is contained in:
parent
ff66e46165
commit
9cca05f65d
1 changed files with 11 additions and 5 deletions
16
flake.nix
16
flake.nix
|
|
@ -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 @@
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue