ks: add completions for bash and zsh (#364049)
[NixPkgs.git] / pkgs / tools / nix / nixci / default.nix
blob3e6866df79c7a73a687e898ff0f7cd2e35f547db
2   lib,
3   stdenv,
4   rustPlatform,
5   fetchCrate,
6   fetchFromGitHub,
7   openssl,
8   pkg-config,
9   Security,
10   SystemConfiguration,
11   IOKit,
12   installShellFiles,
13   nix,
16 rustPlatform.buildRustPackage rec {
17   pname = "nixci";
18   version = "1.0.0";
20   src = fetchCrate {
21     inherit version;
22     pname = "nixci";
23     hash = "sha256-49I09hXYoVo6vzv1b6mkeiFwzfj6g1SkXTL/tCEdOYc=";
24   };
26   cargoHash = "sha256-trmWeYJNev7jYJtGp9XR/emmQiiI94NM0cPFrAuD7m0=";
28   nativeBuildInputs = [
29     pkg-config
30     installShellFiles
31     nix
32   ];
34   buildInputs =
35     lib.optionals stdenv.hostPlatform.isLinux [
36       openssl
37     ]
38     ++ lib.optionals stdenv.hostPlatform.isDarwin [
39       IOKit
40       Security
41       SystemConfiguration
42     ];
44   postInstall = ''
45     installShellCompletion --cmd nixci \
46       --bash <($out/bin/nixci completion bash) \
47       --fish <($out/bin/nixci completion fish) \
48       --zsh <($out/bin/nixci completion zsh)
49   '';
51   # The rust program expects an environment (at build time) that points to the
52   # devour-flake flake.
53   env.DEVOUR_FLAKE = fetchFromGitHub {
54     owner = "srid";
55     repo = "devour-flake";
56     rev = "v4";
57     hash = "sha256-Vey9n9hIlWiSAZ6CCTpkrL6jt4r2JvT2ik9wa2bjeC0=";
58   };
60   meta = with lib; {
61     description = "Define and build CI for Nix projects anywhere";
62     homepage = "https://github.com/srid/nixci";
63     license = licenses.agpl3Only;
64     maintainers = with maintainers; [
65       srid
66       shivaraj-bh
67       rsrohitsingh682
68     ];
69     mainProgram = "nixci";
70   };