| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- {
- inputs = {
- flake-utils.url = "github:numtide/flake-utils";
- naersk.url = "github:nix-community/naersk";
- nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- treefmt-nix.url = "github:numtide/treefmt-nix";
- rust-overlay.url = "github:oxalica/rust-overlay";
- };
- outputs = {
- self
- , flake-utils
- , naersk
- , nixpkgs
- , treefmt-nix
- , rust-overlay
- }:
- flake-utils.lib.eachDefaultSystem (
- system: let
- overlays = [(import rust-overlay)];
- pkgs = (import nixpkgs) {
- inherit system overlays;
- };
- toolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
- naersk' = pkgs.callPackage naersk {
- cargo = toolchain;
- rustc = toolchain;
- };
- treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
- in {
- # For `nix fmt`
- formatter = treefmtEval.config.build.wrapper;
- # packages.default = naersk'.buildPackage {
- # src = ./.;
- # };
- packages = {
- # For `nix build` & `nix run`:
- default = naersk'.buildPackage {
- src = ./.;
- };
- # Run `nix build .#check` to check code
- check = naersk'.buildPackage {
- src = ./.;
- mode = "check";
- };
- # Run `nix build .#test` to run tests
- test = naersk'.buildPackage {
- src = ./.;
- mode = "test";
- };
- # Run `nix build .#clippy` to lint code
- clippy = naersk'.buildPackage {
- src = ./.;
- mode = "clippy";
- };
- };
- # For `nix develop`:
- devShells.default = pkgs.mkShell {
- nativeBuildInputs = with pkgs; [toolchain];
- };
- # for `nix flake check`
- checks = {
- formatting = treefmtEval.config.build.check self;
- };
- }
- );
- }
|