/ config / microvisor / platformio.nix
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  }