36 lines
1.1 KiB
Nix
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
|
|
|