about summary refs log tree commit diff
path: root/pkgs/tools/security/solo2-cli
diff options
context:
space:
mode:
authorLuke Granger-Brown <git@lukegb.com>2022-01-16 01:25:17 +0000
committerLuke Granger-Brown <git@lukegb.com>2022-01-16 01:25:17 +0000
commit4a065e569ba568ec708100bf20a49d0521ebe02c (patch)
tree357b643e4e7bc944a906e12cc89b0c91e70b749f /pkgs/tools/security/solo2-cli
parentc2ab1f2380063a923c34ddc344a23dcd87ba939a (diff)
solo2-cli: init at 0.1.1
Diffstat (limited to 'pkgs/tools/security/solo2-cli')
-rw-r--r--pkgs/tools/security/solo2-cli/default.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/tools/security/solo2-cli/default.nix b/pkgs/tools/security/solo2-cli/default.nix
new file mode 100644
index 0000000000000..e3518799504e5
--- /dev/null
+++ b/pkgs/tools/security/solo2-cli/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, pkg-config
+, pcsclite
+, udev
+, PCSC
+, IOKit
+, CoreFoundation
+, AppKit
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "solo2-cli";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "solokeys";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-3GIK0boxGD4Xa5OskP1535zCQyhMQ/oXbgThRivJzww=";
+  };
+
+  cargoSha256 = "sha256-MYxVegXUVeZ4AzDz+Si5TtTjUDEPTO0Nh008rgLtsLw=";
+
+  nativeBuildInputs = [ installShellFiles pkg-config ];
+
+  buildInputs = [ ]
+    ++ lib.optionals stdenv.isLinux [ pcsclite udev ]
+    ++ lib.optionals stdenv.isDarwin [ PCSC IOKit CoreFoundation AppKit ];
+
+  postInstall = ''
+    installShellCompletion target/*/release/solo2.{bash,fish,zsh}
+  '';
+
+  doCheck = true;
+
+  buildFeatures = [ "cli" ];
+
+  meta = with lib; {
+    description = "A CLI tool for managing SoloKeys' Solo2 USB security keys.";
+    homepage = "https://github.com/solokeys/solo2-cli";
+    license = with licenses; [ asl20 mit ]; # either at your option
+    maintainers = with maintainers; [ lukegb ];
+  };
+}