base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / security / solo2-cli / default.nix
blob387bf00e37bfe01d54279cf510bd89c9a47bcdb8
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , installShellFiles
6 , pkg-config
7 , pcsclite
8 , udev
9 , PCSC
10 , IOKit
11 , CoreFoundation
12 , AppKit
15 rustPlatform.buildRustPackage rec {
16   pname = "solo2-cli";
17   version = "0.2.2";
19   src = fetchFromGitHub {
20     owner = "solokeys";
21     repo = pname;
22     rev = "v${version}";
23     sha256 = "sha256-7tpO5ir42mIKJXD0NJzEPXi/Xe6LdyEeBQWNfOdgX5I=";
24   };
26   cargoHash = "sha256-X+IEeztSL312Yq9Loi3cNJuVfSGk/tRRBCsy0Juji7Y=";
28   nativeBuildInputs = [ installShellFiles pkg-config ];
30   buildInputs = [ ]
31     ++ lib.optionals stdenv.hostPlatform.isLinux [ pcsclite udev ]
32     ++ lib.optionals stdenv.hostPlatform.isDarwin [ PCSC IOKit CoreFoundation AppKit ];
34   postInstall = ''
35     install -D 70-solo2.rules $out/lib/udev/rules.d/70-solo2.rules
36     installShellCompletion target/*/release/solo2.{bash,fish}
37     installShellCompletion --zsh target/*/release/_solo2
38   '';
40   doCheck = true;
42   buildFeatures = [ "cli" ];
44   meta = with lib; {
45     description = "CLI tool for managing SoloKeys' Solo2 USB security keys";
46     homepage = "https://github.com/solokeys/solo2-cli";
47     license = with licenses; [ asl20 mit ]; # either at your option
48     maintainers = with maintainers; [ lukegb ];
49     mainProgram = "solo2";
50   };