Skip to content

Commit b4e7218

Browse files
committed
add shell.nix template
1 parent 1b4e8ab commit b4e7218

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

template/shell.nix.j2

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
let
2+
self = import ./. {};
3+
inherit (self) sources pkgs;
4+
5+
beku = pkgs.callPackage (sources."beku.py" + "/beku.nix") {};
6+
cargoDependencySetOfCrate = crate: [ crate ] ++ pkgs.lib.concatMap cargoDependencySetOfCrate (crate.dependencies ++ crate.buildDependencies);
7+
cargoDependencySet = pkgs.lib.unique (pkgs.lib.flatten (pkgs.lib.mapAttrsToList (crateName: crate: cargoDependencySetOfCrate crate.build) self.cargo.workspaceMembers));
8+
in pkgs.mkShell rec {
9+
name = "{[ operator.name }]";
10+
11+
packages = with pkgs; [
12+
## cargo et-al
13+
rustup # this breaks pkg-config if it is in the nativeBuildInputs
14+
15+
## Extra dependencies for use in a pure env (nix-shell --pure)
16+
## These are mosuly useful for maintainers of this shell.nix
17+
## to ensure all the dependencies are caught.
18+
# cacert
19+
# vim nvim nano
20+
];
21+
22+
# derivation runtime dependencies
23+
buildInputs = pkgs.lib.concatMap (crate: crate.buildInputs) cargoDependencySet ++ [ pkgs.libz ];
24+
25+
# build time dependencies
26+
nativeBuildInputs = pkgs.lib.concatMap (crate: crate.nativeBuildInputs) cargoDependencySet ++ (with pkgs; [
27+
# specific to secret-operator but should be discovered via crate2nix, but
28+
# otherwise, we could include an operator-specific nix import for any extras
29+
pkg-config
30+
clang
31+
openssl
32+
protobuf
33+
krb5
34+
35+
git
36+
yq-go
37+
jq
38+
kubectl
39+
nix # this is impled, but needed in the pure env
40+
kubernetes-helm
41+
# tilt already defined in default.nix
42+
docker
43+
kind
44+
45+
kuttl
46+
beku
47+
which
48+
gettext # for the proper envsubst
49+
]);
50+
51+
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
52+
}

0 commit comments

Comments
 (0)