{ 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 = ""; }; git-hooks-nix.url = "github:cachix/git-hooks.nix"; treefmt-nix.url = "github:numtide/treefmt-nix"; }; outputs = inputs @ {flake-parts, ...}: flake-parts.lib.mkFlake {inherit inputs;} { imports = [ inputs.git-hooks-nix.flakeModule inputs.treefmt-nix.flakeModule ./nix/package.nix ]; systems = ["x86_64-linux" "aarch64-linux"]; perSystem = { config, pkgs, ... }: { devShells.default = pkgs.mkShell { shellHook = '' ${config.pre-commit.installationScript} ''; buildInputs = with pkgs; [cargo-nextest]; }; pre-commit.settings.hooks = { alejandra.enable = true; editorconfig-checker = { args = ["--config" ".editorconfig-checker.json"]; enable = true; }; }; treefmt = { flakeFormatter = true; programs = { alejandra.enable = true; just.enable = true; rustfmt.enable = true; taplo.enable = true; }; projectRootFile = "flake.nix"; }; }; }; }