{ description = "Scraper that can parse all of Victoria University of Wellington's courses, and output them in a computer-readable JSON file."; inputs = { flake-parts.url = "github:hercules-ci/flake-parts"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; crane.url = "github:ipetkov/crane"; advisory-db = { url = "github:rustsec/advisory-db"; flake = false; }; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.rust-analyzer-src.follows = ""; }; nix2container.url = "github:nlewo/nix2container"; nix2container.inputs.nixpkgs.follows = "nixpkgs"; mk-shell-bin.url = "github:rrbutani/nix-mk-shell-bin"; devenv.url = "github:cachix/devenv"; }; outputs = inputs @ {flake-parts, ...}: flake-parts.lib.mkFlake {inherit inputs;} { imports = [ inputs.devenv.flakeModule ./nix/package.nix ]; systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"]; perSystem = {pkgs, ...}: { devenv.shells.default = { # NOTE: env vars are maintained inside ./nix/package.nix. languages = { nix.enable = true; rust.enable = true; }; # NOTE: build dependencies are maintained inside ./nix/package.nix. packages = with pkgs; [cargo-nextest]; pre-commit.hooks.alejandra.enable = true; }; }; }; }