54 lines
1.5 KiB
Nix
54 lines
1.5 KiB
Nix
flake_input@{ kpcli-py
|
|
, nixgl
|
|
, rust-overlay
|
|
, neovim-nightly-overlay
|
|
, system
|
|
, nickel
|
|
, ...
|
|
}: let
|
|
kpcli-py = (final: prev: {
|
|
# use python3.9, which works because of cython somehow?
|
|
kpcli-py = final.poetry2nix.mkPoetryApplication {
|
|
projectDir = flake_input.kpcli-py;
|
|
python = final.python39;
|
|
overrides = final.poetry2nix.defaultPoetryOverrides.extend (self: super: {
|
|
# tableformatter requires setuptools
|
|
tableformatter = super.tableformatter.overridePythonAttrs (
|
|
old: {
|
|
buildInputs = (old.buildInputs or [ ]) ++ [ super.setuptools super.cython_3 ];
|
|
}
|
|
);
|
|
});
|
|
};
|
|
});
|
|
|
|
rust = (final: prev:
|
|
let
|
|
nightlyRustWithExts = exts: final.rust-bin.selectLatestNightlyWith (
|
|
toolchain: (toolchain.minimal.override {
|
|
extensions = exts;
|
|
})
|
|
);
|
|
# https://rust-lang.github.io/rustup/concepts/profiles.html
|
|
rust-default-components = [ "rust-docs" "rustfmt" "clippy" ];
|
|
rust-dev-components = rust-default-components ++ [ "rust-src" "rust-analyzer" "miri" ];
|
|
in {
|
|
rust4devs = nightlyRustWithExts rust-dev-components;
|
|
rust4cargo = nightlyRustWithExts [ ];
|
|
rust4normi = nightlyRustWithExts rust-default-components;
|
|
});
|
|
|
|
nickel = (final: prev: {
|
|
inherit (flake_input.nickel.packages.${system})
|
|
lsp-nls nickel nickelWasm;
|
|
});
|
|
in [
|
|
nixgl.overlays.default
|
|
rust-overlay.overlays.default
|
|
neovim-nightly-overlay.overlay
|
|
rust
|
|
kpcli-py
|
|
nickel
|
|
]
|
|
|