nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 installShellFiles,
6 stdenv,
7 versionCheckHook,
8 writableTmpDirAsHomeHook,
9 nix-update-script,
10}:
11buildGoModule (finalAttrs: {
12 pname = "az-pim-cli";
13 version = "1.7.0";
14
15 src = fetchFromGitHub {
16 owner = "netr0m";
17 repo = "az-pim-cli";
18 tag = "v${finalAttrs.version}";
19 hash = "sha256-X7+/2pXbpHFm22lwWy6LvyjIy6sxmYSiMrYV3faAZl4=";
20 };
21
22 patches = [
23 # removes info we don't have from version command
24 ./version-build-info.patch
25 ];
26
27 vendorHash = "sha256-PHrpUlAG/PBe3NKUGBQ1U7dCcqkSlErWX2dp9ZPB3+8=";
28
29 nativeBuildInputs = [
30 installShellFiles
31 ];
32
33 env.CGO_ENABLED = 0;
34
35 ldflags = [
36 "-s"
37 "-X github.com/netr0m/az-pim-cli/cmd.version=v${finalAttrs.version}"
38 ];
39
40 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
41 installShellCompletion --cmd az-pim-cli \
42 --bash <($out/bin/az-pim-cli completion bash) \
43 --fish <($out/bin/az-pim-cli completion fish) \
44 --zsh <($out/bin/az-pim-cli completion zsh)
45 '';
46
47 doInstallCheck = true;
48 nativeInstallCheckInputs = [
49 writableTmpDirAsHomeHook
50 versionCheckHook
51 ];
52 versionCheckProgramArg = "version";
53 versionCheckKeepEnvironment = [ "HOME" ];
54
55 passthru.updateScript = nix-update-script { };
56
57 meta = {
58 description = "List and activate Azure Entra ID Privileged Identity Management roles from the CLI";
59 homepage = "https://github.com/netr0m/az-pim-cli";
60 changelog = "https://github.com/netr0m/az-pim-cli/releases/tag/v${finalAttrs.version}";
61 license = lib.licenses.mit;
62 maintainers = [ lib.maintainers.awwpotato ];
63 mainProgram = "az-pim-cli";
64 };
65})