{ description = "UL Wolves API Library"; inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; naersk.url = "github:nix-community/naersk"; utils.url = "github:numtide/flake-utils"; }; nixConfig = { extra-substituters = "https://nix-cache.skynet.ie/skynet-cache"; extra-trusted-public-keys = "skynet-cache:zMFLzcRZPhUpjXUy8SF8Cf7KGAZwo98SKrzeXvdWABo="; }; outputs = { self, nixpkgs, utils, naersk, }: utils.lib.eachDefaultSystem ( system: let pkgs = (import nixpkgs) {inherit system;}; naersk' = pkgs.callPackage naersk {}; package_name = "wolves_api"; buildInputs = with pkgs; [ openssl pkg-config rustfmt ]; in rec { packages = { # For `nix build` & `nix run`: default = naersk'.buildPackage { pname = "${package_name}"; src = ./.; buildInputs = buildInputs; }; # Run `nix build .#fmt` to run tests fmt = naersk'.buildPackage { src = ./.; mode = "fmt"; buildInputs = buildInputs; }; # Run `nix build .#clippy` to lint code clippy = naersk'.buildPackage { src = ./.; mode = "clippy"; buildInputs = buildInputs; }; test = naersk'.buildPackage { src = ./.; mode = "test"; buildInputs = buildInputs; }; }; # `nix develop` devShell = pkgs.mkShell { nativeBuildInputs = ( with pkgs; [rustc cargo] ) ++ buildInputs; }; } ); }