{ description = "tlater.net web server"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05"; dream2nix.url = "github:nix-community/dream2nix"; fenix = { url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, dream2nix, fenix, }: let # At the moment, we only deploy to x86_64-linux. Update when we # care about another platform. system = "x86_64-linux"; flakeOutputs = import ./nix/packages.nix {inherit nixpkgs dream2nix fenix system;}; in { packages.${system} = { server = flakeOutputs.server.packages.${system}.default; templates = flakeOutputs.templates.packages.${system}.default; }; devShells.${system} = { templates = flakeOutputs.templates.devShells.${system}.default.overrideAttrs (old: { buildInputs = with nixpkgs.legacyPackages.${system}; [ yj ] ++ old.buildInputs; shellHook = '' # Update package.json if [ -e ./package.json ]; then unlink ./package.json fi cat ./package.yaml | yj > ./package.json '' + old.shellHook; }); server = nixpkgs.legacyPackages.${system}.mkShell { packages = [ (flakeOutputs.server.rust-toolchain.withComponents [ "rustc" "cargo" "rustfmt" "rust-std" "rust-docs" "clippy" "rust-src" "rust-analysis" ]) fenix.packages.${system}.rust-analyzer ]; }; }; }; }