nixpkgs/pkgs/tools/system/nsc/default.nix
Connor Brewster 47a059731e nsc: disable check phase on darwin
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.
2023-10-04 17:44:53 -05:00

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";
};
}