arduino-nix/wrap-arduino-cli.nix
Bouke van der Bijl b2afa2da8c Initial commit
2022-12-20 15:04:26 +01:00

36 lines
1.1 KiB
Nix

{ lib, pkgs }:
let
wrap = {
packages ? []
, libraries ? []
}:
let
inherit (pkgs.callPackage ./lib.nix {}) latestVersion;
builtinPackages = (map latestVersion (builtins.attrValues pkgs.arduinoPackages.tools.builtin));
libPath = pkgs.symlinkJoin {
name = "arduino-libraries";
paths = libraries;
};
dataPath = pkgs.symlinkJoin {
name = "arduino-data";
paths = builtinPackages ++ packages ++ [
# Add some dummy files to keep the CLI happy
(pkgs.writeTextDir "inventory.yaml" (builtins.toJSON {}))
(pkgs.writeTextDir "package_index.json" (builtins.toJSON {packages = [];}))
(pkgs.writeTextDir "library_index.json" (builtins.toJSON {libraries = [];}))
];
};
in
pkgs.runCommand "arduino-cli-wrapped" {
buildInputs = [ pkgs.makeWrapper ];
meta.mainProgram = "arduino-cli";
} ''
makeWrapper ${pkgs.arduino-cli}/bin/arduino-cli $out/bin/arduino-cli --set ARDUINO_UPDATER_ENABLE_NOTIFICATION false --set ARDUINO_DIRECTORIES_DATA ${dataPath} --set ARDUINO_DIRECTORIES_USER ${libPath}
'';
in
lib.makeOverridable wrap