{ pkgs }: with pkgs; # Configure your development environment. # # Documentation: https://github.com/numtide/devshell devshell.mkShell { name = "snowferris"; motd = '' Welcome to the snowferris (nix) devShell! If you see this message, it means your are inside the Nix shell. Command(s) available: - nixpkgs-fmt: format nix code - build-pkg: build 'snowferris' (cargo) - ci: run all CI tasks locally ''; commands = [ { name = "nixpkgs-fmt"; help = "use this to format the Nix code"; category = "fmt"; package = "nixpkgs-fmt"; } { name = "build-pkg"; help = "build 'snowferris' (cargo)"; category = "build"; command = "cargo build --release"; } { name = "ci"; help = "run all CI tasks locally"; category = "test"; command = '' echo Running step 1 :: format cargo fmt --all -- --check echo Running step 2 :: clippy cargo clippy --all-targets --all-features -- -D warnings echo Running step 3 :: unit cargo test echo Running step 4 :: build cargo build --release ''; } ]; bash = { extra = '' export LD_INCLUDE_PATH="$DEVSHELL_DIR/include" export LD_LIB_PATH="$DEVSHELL_DIR/lib" ''; interactive = ''''; }; env = [ { name = "OPENSSL_DIR"; value = "${openssl.bin}/bin"; } { name = "OPENSSL_LIB_DIR"; value = "${openssl.out}/lib"; } { name = "OPENSSL_INCLUDE_DIR"; value = "${openssl.out.dev}/include"; } ]; packages = [ # Rust rust-bin.stable.latest.default rust-analyzer # rustfmt # clippy ### Others clang nixpkgs-fmt ]; }