nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 rustPlatform,
5 fetchFromGitHub,
6 testers,
7 installShellFiles,
8}:
9
10rustPlatform.buildRustPackage (finalAttrs: {
11 pname = "weaver";
12 version = "0.20.0";
13
14 src = fetchFromGitHub {
15 owner = "open-telemetry";
16 repo = "weaver";
17 tag = "v${finalAttrs.version}";
18 hash = "sha256-cZWxXcU5yn1ShLWVMZznVNBmhx5npUGc3lJuuchb/FA=";
19 };
20
21 cargoHash = "sha256-4ezcHKXmEmnkRG6/Pt0ENUlkga7SesMfI52txEH9ph0=";
22
23 checkFlags = [
24 # Skip tests requiring network
25 "--skip=test_cli_interface"
26 ];
27
28 nativeBuildInputs = [ installShellFiles ];
29
30 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
31 installShellCompletion --cmd ${finalAttrs.meta.mainProgram} \
32 --bash <($out/bin/${finalAttrs.meta.mainProgram} completion bash) \
33 --zsh <($out/bin/${finalAttrs.meta.mainProgram} completion zsh) \
34 --fish <($out/bin/${finalAttrs.meta.mainProgram} completion fish)
35 '';
36
37 passthru.tests.version = testers.testVersion {
38 package = finalAttrs.finalPackage;
39 };
40
41 meta = {
42 description = "OpenTelemetry tool for dealing with semantic conventions and application telemetry schemas";
43 homepage = "https://github.com/open-telemetry/weaver";
44 changelog = "https://github.com/open-telemetry/weaver/releases/tag/${finalAttrs.src.tag}";
45 license = lib.licenses.asl20;
46 maintainers = with lib.maintainers; [ aaronjheng ];
47 mainProgram = "weaver";
48 };
49})