this repo has no description
1{
2 description = "Aria Shrimpton dissertation";
3 inputs = {
4 crane.url = "github:ipetkov/crane";
5 crane.inputs.nixpkgs.follows = "nixpkgs";
6 rust-overlay = {
7 url = "github:oxalica/rust-overlay";
8 inputs = {
9 nixpkgs.follows = "nixpkgs";
10 };
11 };
12 nixos-generators = {
13 url = "github:nix-community/nixos-generators";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16 };
17
18 outputs = inputs @ {
19 self,
20 nixpkgs,
21 nixos-generators,
22 crane,
23 rust-overlay,
24 }: let
25 system = "x86_64-linux";
26 pkgs = import nixpkgs {
27 inherit system;
28 overlays = [(import rust-overlay)];
29 };
30 tex-env = pkgs.callPackage ./nix/tex-env.nix inputs;
31 racket-env = pkgs.callPackage ./nix/racket-env.nix inputs;
32 rust-toolchain = pkgs.rust-bin.fromRustupToolchain ((builtins.fromTOML (builtins.readFile ./src/rust-toolchain.toml)).toolchain // {profile = "minimal";});
33 candelabra = pkgs.callPackage ./nix/candelabra.nix inputs;
34 in rec {
35 devShells.${system} = {
36 minimal = pkgs.mkShell {
37 buildInputs = [
38 rust-toolchain
39 racket-env
40 pkgs.just # command runner
41 pkgs.inotify-tools
42 ];
43 };
44 full = pkgs.mkShell {
45 buildInputs = [
46 rust-toolchain
47 racket-env
48 pkgs.just # command runner
49 pkgs.inotify-tools
50
51 tex-env
52 pkgs.biber # bibliography backend
53
54 pkgs.livebook # datavis
55 # god is dead
56 pkgs.nodejs
57 pkgs.nodePackages.vega-cli
58 pkgs.nodePackages.vega-lite
59 ];
60 };
61 };
62
63 packages.${system} = {
64 default = candelabra;
65 vm = nixos-generators.nixosGenerate {
66 inherit system;
67 specialArgs = {
68 inherit inputs tex-env racket-env candelabra;
69 };
70 modules = [./nix/configuration.nix];
71
72 format = "vm";
73 };
74 };
75 };
76}