diff options
| author | Mike Vink <ivi@vinkies.net> | 2023-12-02 22:10:34 +0100 |
|---|---|---|
| committer | Mike Vink <ivi@vinkies.net> | 2023-12-10 20:35:22 +0100 |
| commit | 9dbbbc4fe5d85e917e8efa977501b4ebacb349be (patch) | |
| tree | 06339fa764a7dacd9b1f6e2093e0e9cdba4c2f8b /flake.nix | |
use tree for day1, why not 🐒
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..eb14a44 --- /dev/null +++ b/flake.nix @@ -0,0 +1,58 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; + systems.url = "github:nix-systems/default"; + treefmt-nix.url = "github:numtide/treefmt-nix"; + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + systems = import inputs.systems; + imports = [ + inputs.treefmt-nix.flakeModule + ]; + perSystem = { config, self', pkgs, lib, system, ... }: + let + nonRustDeps = [ + pkgs.libiconv + ]; + in + { + _module.args.pkgs = import inputs.nixpkgs { + inherit system; overlays = [inputs.fenix.overlays.default]; + }; + # Rust dev environment + devShells.default = pkgs.mkShell { + inputsFrom = [config.treefmt.build.devShell]; + buildInputs = nonRustDeps; + nativeBuildInputs = with pkgs; [ + (fenix.complete.withComponents [ + "cargo" + "clippy" + "rust-src" + "rustc" + "rustfmt" + ]) + cargo-flamegraph + rust-analyzer-nightly + ]; + }; + + # Add your auto-formatters here. + # cf. https://numtide.github.io/treefmt/ + treefmt.config = { + projectRootFile = "flake.nix"; + programs = { + nixpkgs-fmt.enable = true; + rustfmt.enable = true; + }; + }; + }; + }; + +} |
