2023-10-15 20:44:35 +02:00
|
|
|
{
|
|
|
|
|
description = "PRQL development environment";
|
|
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
|
nixpkgs.url = "github:nixos/nixpkgs";
|
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
2024-08-31 14:08:46 +02:00
|
|
|
naersk.url = "github:nix-community/naersk";
|
|
|
|
|
mdbook-footnote = {
|
|
|
|
|
url = "github:aljazerzen/mdbook-footnote";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
|
|
|
inputs.naersk.follows = "naersk";
|
|
|
|
|
};
|
|
|
|
|
hyperlink = {
|
|
|
|
|
url = "github:aljazerzen/hyperlink";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
|
|
|
inputs.naersk.follows = "naersk";
|
|
|
|
|
};
|
2024-02-19 10:40:31 +01:00
|
|
|
fenix = {
|
|
|
|
|
url = "github:nix-community/fenix";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2023-10-15 20:44:35 +02:00
|
|
|
};
|
|
|
|
|
|
2024-08-31 14:08:46 +02:00
|
|
|
outputs = { self, nixpkgs, flake-utils, mdbook-footnote, hyperlink, fenix, naersk }:
|
2023-10-15 20:44:35 +02:00
|
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
|
|
|
let
|
|
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
2024-02-19 10:40:31 +01:00
|
|
|
fenix_pkgs = fenix.packages.${system};
|
2023-10-15 20:44:35 +02:00
|
|
|
|
|
|
|
|
essentials = with pkgs; [
|
2024-02-29 13:31:52 +01:00
|
|
|
# rust toolchain
|
2025-01-27 12:19:59 +01:00
|
|
|
(fenix_pkgs.combine [
|
|
|
|
|
(fenix_pkgs.fromToolchainFile {
|
|
|
|
|
file = ./rust-toolchain.toml;
|
|
|
|
|
sha256 = "sha256-s1RPtyvDGJaX/BisLT+ifVfuhDT1nZkZ1NcK8sbwELM=";
|
|
|
|
|
})
|
|
|
|
|
(fenix_pkgs.stable.withComponents [
|
|
|
|
|
"cargo"
|
|
|
|
|
"clippy"
|
|
|
|
|
"rust-src"
|
|
|
|
|
"rustc"
|
|
|
|
|
"rustfmt"
|
|
|
|
|
"rust-analyzer"
|
|
|
|
|
"llvm-tools-preview"
|
|
|
|
|
])
|
2024-02-29 13:31:52 +01:00
|
|
|
])
|
2023-10-15 20:44:35 +02:00
|
|
|
|
2024-02-28 19:07:10 +01:00
|
|
|
# tooling
|
|
|
|
|
clang # for llvm debugger in VSCode
|
|
|
|
|
|
2023-10-15 20:44:35 +02:00
|
|
|
# tools
|
2023-11-30 09:42:04 +01:00
|
|
|
cargo-nextest
|
2023-10-15 20:44:35 +02:00
|
|
|
bacon
|
|
|
|
|
cargo-audit
|
|
|
|
|
cargo-insta
|
|
|
|
|
cargo-release
|
2023-11-30 09:42:04 +01:00
|
|
|
pkg-config
|
|
|
|
|
openssl
|
2024-01-25 02:39:23 -08:00
|
|
|
cargo-llvm-cov
|
2023-10-15 20:44:35 +02:00
|
|
|
|
|
|
|
|
# actions
|
2023-12-03 11:00:30 +01:00
|
|
|
go-task
|
2023-10-15 20:44:35 +02:00
|
|
|
sd
|
|
|
|
|
ripgrep
|
|
|
|
|
nodePackages.prettier
|
|
|
|
|
#nodePackages.prettier-plugin-go-template
|
2023-10-15 22:58:05 +02:00
|
|
|
#nixpkgs-fmt
|
2023-10-15 20:44:35 +02:00
|
|
|
rsync
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
web = with pkgs; [
|
|
|
|
|
# book
|
|
|
|
|
mdbook
|
|
|
|
|
mdbook-admonish
|
|
|
|
|
mdbook-footnote.defaultPackage.${system}
|
|
|
|
|
|
|
|
|
|
# website
|
|
|
|
|
hugo
|
|
|
|
|
|
|
|
|
|
# playground
|
|
|
|
|
nodejs
|
|
|
|
|
nodePackages.npm
|
|
|
|
|
|
|
|
|
|
# link check
|
|
|
|
|
hyperlink.defaultPackage.${system}
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
bindings = with pkgs; [
|
2024-02-06 11:38:17 -08:00
|
|
|
# bindings
|
2023-10-15 20:44:35 +02:00
|
|
|
python311
|
2024-02-06 11:38:17 -08:00
|
|
|
zlib
|
2023-12-03 11:00:30 +01:00
|
|
|
maturin
|
|
|
|
|
ruff
|
|
|
|
|
black
|
|
|
|
|
|
2023-10-15 20:44:35 +02:00
|
|
|
wasm-bindgen-cli
|
|
|
|
|
wasm-pack
|
|
|
|
|
];
|
|
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
|
|
|
buildInputs = essentials;
|
|
|
|
|
};
|
|
|
|
|
devShells.web = pkgs.mkShell {
|
|
|
|
|
buildInputs = essentials ++ web;
|
|
|
|
|
};
|
|
|
|
|
devShells.full = pkgs.mkShell {
|
|
|
|
|
buildInputs = essentials ++ web ++ bindings;
|
2024-02-06 11:38:17 -08:00
|
|
|
|
|
|
|
|
# needed for running wheels produced by Python maturin builds that are not manylinux
|
2024-02-19 10:40:31 +01:00
|
|
|
# shellHook = ''
|
|
|
|
|
# export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath bindings}:$LD_LIBRARY_PATH"
|
|
|
|
|
# export LD_LIBRARY_PATH="${pkgs.stdenv.cc.cc.lib.outPath}/lib:$LD_LIBRARY_PATH"
|
|
|
|
|
# '';
|
2023-10-15 20:44:35 +02:00
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
}
|