about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix')
-rw-r--r--nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix b/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix
new file mode 100644
index 000000000000..8fd4cf0a35ae
--- /dev/null
+++ b/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub, buildFHSUserEnv }:
+
+let
+
+  pkg = buildGoModule rec {
+    pname = "arduino-cli";
+    version = "0.18.1";
+
+    src = fetchFromGitHub {
+      owner = "arduino";
+      repo = pname;
+      rev = version;
+      sha256 = "sha256-EtkONrP/uaetsdC47WsyQOE71Gsz0wKUiTiYThj8Kq8=";
+    };
+
+    subPackages = [ "." ];
+
+    vendorSha256 = "sha256-kPIhG6lsH+0IrYfdlzdv/X/cUQb22Xza9Q6ywjKae/4=";
+
+    doCheck = false;
+
+    ldflags = [
+      "-s" "-w" "-X github.com/arduino/arduino-cli/version.versionString=${version}" "-X github.com/arduino/arduino-cli/version.commit=unknown"
+    ] ++ lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
+
+    meta = with lib; {
+      inherit (src.meta) homepage;
+      description = "Arduino from the command line";
+      license = licenses.gpl3Only;
+      maintainers = with maintainers; [ ryantm ];
+    };
+
+  };
+
+in
+if stdenv.isLinux then
+# buildFHSUserEnv is needed because the arduino-cli downloads compiler
+# toolchains from the internet that have their interpreters pointed at
+# /lib64/ld-linux-x86-64.so.2
+  buildFHSUserEnv
+  {
+    inherit (pkg) name meta;
+
+    runScript = "${pkg.outPath}/bin/arduino-cli";
+
+    extraInstallCommands = ''
+      mv $out/bin/$name $out/bin/arduino-cli
+    '';
+
+    targetPkgs = pkgs: with pkgs; [
+      zlib
+    ];
+  }
+else
+  pkg