platformio.nix
1 { 2 lib, 3 pkgs, 4 config, 5 ... 6 }: 7 let 8 cfg = config.platformio; 9 in 10 { 11 # platformio.ini is now tangled from CONTRIBUTING.org 12 13 options.platformio = { 14 enable = lib.mkEnableOption "PlatformIO Development Tooling for Embedded Systems."; 15 }; 16 17 config = lib.mkIf cfg.enable { 18 packages = 19 (with pkgs; [ 20 ninja 21 ccache 22 openocd 23 esptool 24 ]) 25 ++ lib.optionals pkgs.stdenv.isDarwin ( 26 with pkgs; 27 [ 28 dfu-util 29 kconfig-frontends 30 python314Packages.kconfiglib 31 ] 32 ); 33 34 enterShell = lib.mkAfter '' 35 echo -e "\033[36m[devenv:platformio]:\033[0m\033[32m Platformio workspace ready 🟧\033[0m" 36 ''; 37 }; 38 }