{ description = "tlater.net web server contents"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05"; nix-filter.url = "github:numtide/nix-filter"; npmlock2nix = { url = "github:nix-community/npmlock2nix"; flake = false; }; }; outputs = { self, nixpkgs, nix-filter, npmlock2nix, }: let # At the moment, we only deploy to x86_64-linux. Update when we # care about another platform. system = "x86_64-linux"; overlays = [ (final: prev: { npmlock2nix = import npmlock2nix {pkgs = prev;}; }) ]; pkgs = import nixpkgs {inherit system overlays;}; in { packages.${system} = rec { tlaternet-templates = pkgs.npmlock2nix.build { src = pkgs.lib.cleanSource self; buildInputs = with pkgs; [ util-linux ]; installPhase = '' cp -r dist $out/ ''; node_modules_attrs = { buildInputs = with pkgs; [ pkg-config python3 vips glib ]; }; }; default = tlaternet-templates; }; devShells.${system} = { default = pkgs.npmlock2nix.shell { src = nix-filter.lib { root = self; include = [ "package.json" "package-lock.json" ]; }; buildInputs = with pkgs.nodePackages; [ npm-check-updates prettier ]; node_modules_attrs = { buildInputs = with pkgs; [ pkg-config python3 vips glib ]; }; }; }; }; }