diff options
Diffstat (limited to 'pkgs/by-name/ar/argc')
-rw-r--r-- | pkgs/by-name/ar/argc/package.nix | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/by-name/ar/argc/package.nix b/pkgs/by-name/ar/argc/package.nix new file mode 100644 index 0000000000000..8c286ebff9e67 --- /dev/null +++ b/pkgs/by-name/ar/argc/package.nix @@ -0,0 +1,66 @@ +{ + lib, + buildPackages, + pkgsCross, + rustPlatform, + stdenv, + fetchFromGitHub, + installShellFiles, +}: + +let + canExecuteHost = stdenv.buildPlatform.canExecute stdenv.hostPlatform; +in +rustPlatform.buildRustPackage rec { + pname = "argc"; + version = "1.14.0"; + + src = fetchFromGitHub { + owner = "sigoden"; + repo = "argc"; + rev = "v${version}"; + hash = "sha256-Li/K5/SLG6JuoRJDz2DQoj1Oi9LQgZWHNvtZ1HVbj88="; + }; + + cargoHash = "sha256-D1T9FWTvwKtAYoqFlR2OmLRLGWhPJ9D8J7lq/QKcBoM="; + + nativeBuildInputs = [ installShellFiles ] ++ lib.optional (!canExecuteHost) buildPackages.argc; + + postInstall = '' + ARGC=${if canExecuteHost then ''''${!outputBin}/bin/argc'' else "argc"} + + installShellCompletion --cmd argc \ + --bash <("$ARGC" --argc-completions bash) \ + --fish <("$ARGC" --argc-completions fish) \ + --zsh <("$ARGC" --argc-completions zsh) + ''; + + disallowedReferences = lib.optional (!canExecuteHost) buildPackages.argc; + + passthru = { + tests = { + cross = + ( + if stdenv.hostPlatform.isDarwin then + if stdenv.hostPlatform.isAarch64 then pkgsCross.x86_64-darwin else pkgsCross.aarch64-darwin + else if stdenv.hostPlatform.isAarch64 then + pkgsCross.gnu64 + else + pkgsCross.aarch64-multiplatform + ).argc; + }; + }; + + meta = with lib; { + description = "Command-line options, arguments and sub-commands parser for bash"; + mainProgram = "argc"; + homepage = "https://github.com/sigoden/argc"; + changelog = "https://github.com/sigoden/argc/releases/tag/v${version}"; + license = with licenses; [ + mit + # or + asl20 + ]; + maintainers = with maintainers; [ figsoda ]; + }; +} |