diff --git a/pkgs/development/tools/mani/default.nix b/pkgs/development/tools/mani/default.nix new file mode 100644 index 000000000000..8cfebb34861e --- /dev/null +++ b/pkgs/development/tools/mani/default.nix @@ -0,0 +1,45 @@ +{ buildGoModule, fetchFromGitHub, lib, installShellFiles, git, makeWrapper}: + +buildGoModule rec { + pname = "mani"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "alajmo"; + repo = "mani"; + rev = "v${version}"; + sha256 = "sha256-9rcgPeYFHdIN73K0zGPEHqFFLFkVYkNYRXJ+0/Zo4zI="; + }; + + vendorSha256 = "sha256-ZivzDfjx2djzS0Xm3GISK3zpB5fUUMgy2o4Ti1Z9wMM="; + + nativeBuildInputs = [ installShellFiles makeWrapper ]; + + postInstall = '' + installShellCompletion --cmd mani \ + --bash <($out/bin/mani completion bash) \ + --fish <($out/bin/mani completion fish) \ + --zsh <($out/bin/mani completion zsh) + + wrapProgram $out/bin/mani \ + --prefix PATH : ${lib.makeBinPath [ git ]} + ''; + + # Skip tests + # The repo's test folder has a README.md with detailed information. I don't + # know how to wrap the dependencies for these integration tests so skip for now. + doCheck = false; + + meta = with lib; { + description = "CLI tool to help you manage multiple repositories"; + longDescription = '' + mani is a CLI tool that helps you manage multiple repositories. It's useful + when you are working with microservices, multi-project systems, many + libraries or just a bunch of repositories and want a central place for + pulling all repositories and running commands over them. + ''; + homepage = "https://manicli.com/"; + changelog = "https://github.com/alajmo/mani/releases/tag/v${version}"; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0e3417307bd4..96cea130180a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6971,6 +6971,8 @@ with pkgs; makebootfat = callPackage ../tools/misc/makebootfat { }; + mani = callPackage ../development/tools/mani { }; + mapcache = callPackage ../servers/mapcache { }; mapserver = callPackage ../servers/mapserver { };