47a059731e
nsc is currently marked as broken on darwin because it's check phase does not pass. However, it builds and works fine. The check phase failure is due to a test in nsc stripping `-` from some test output to remove some table formatting. This accidentally removes `-` in a filesystem path and makes a test fail that expects the output to contain a specific path. This should be fixed upstream in nsc, but no need to mark darwin as broken when it actually does build and work okay.
60 lines
1.7 KiB
Nix
60 lines
1.7 KiB
Nix
{ lib
|
|
, stdenv
|
|
, buildGoModule
|
|
, fetchFromGitHub
|
|
, installShellFiles
|
|
}:
|
|
|
|
buildGoModule rec {
|
|
pname = "nsc";
|
|
version = "2.8.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "nats-io";
|
|
repo = pname;
|
|
rev = "v${version}";
|
|
hash = "sha256-kNfA/MQuXauQPWQhUspreqo4oOKb+qBqh9NdmQM1Q+A=";
|
|
};
|
|
|
|
ldflags = [
|
|
"-s"
|
|
"-w"
|
|
"-X main.version=v${version}"
|
|
"-X main.builtBy=nixpkgs"
|
|
];
|
|
|
|
vendorHash = "sha256-8cTegiNVtGSZdf9O+KVoOgnjjMIv8w7YBSkFhk7gHfk=";
|
|
|
|
nativeBuildInputs = [ installShellFiles ];
|
|
|
|
postInstall = ''
|
|
installShellCompletion --cmd nsc \
|
|
--bash <($out/bin/nsc completion bash) \
|
|
--fish <($out/bin/nsc completion fish) \
|
|
--zsh <($out/bin/nsc completion zsh)
|
|
'';
|
|
|
|
preCheck = ''
|
|
# Tests attempt to write to the home directory.
|
|
export HOME=$(mktemp -d)
|
|
'';
|
|
|
|
# Tests currently fail on darwin because of a test in nsc which
|
|
# expects command output to contain a specific path. However
|
|
# the test strips table formatting from the command output in a naive way
|
|
# that removes all the table characters, including '-'.
|
|
# The nix build directory looks something like:
|
|
# /private/tmp/nix-build-nsc-2.8.1.drv-0/nsc_test2000598938/keys
|
|
# Then the `-` are removed from the path unintentionally and the test fails.
|
|
# This should be fixed upstream to avoid mangling the path when
|
|
# removing the table decorations from the command output.
|
|
doCheck = !stdenv.isDarwin;
|
|
|
|
meta = {
|
|
description = "A tool for creating NATS account and user access configurations";
|
|
homepage = "https://github.com/nats-io/nsc";
|
|
license = with lib.licenses; [ asl20 ];
|
|
maintainers = with lib.maintainers; [ cbrewster ];
|
|
mainProgram = "nsc";
|
|
};
|
|
}
|