{ description = "Jet Pham's personal website"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, }: (flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; }; lib = pkgs.lib; websiteSrc = lib.fileset.toSource { root = ./.; fileset = lib.fileset.unions [ ./index.html ./package-lock.json ./package.json ./public ./src ./tsconfig.json ./vite-plugin-ansi.ts ./vite.config.ts ]; }; website = pkgs.buildNpmPackage { pname = "jet-website"; version = "0.1.0"; src = websiteSrc; npmDepsHash = "sha256-UDz4tXNvEa8uiDDGg16K9JbNeQZR3BsVNKtuOgcyurQ="; installPhase = '' runHook preInstall mkdir -p $out cp -r dist/* $out/ runHook postInstall ''; }; qa-api = pkgs.rustPlatform.buildRustPackage { pname = "jetpham-qa-api"; version = "0.1.0"; src = ./api; cargoHash = "sha256-mAQUSA5S3uCCo4RbWVgzMMPDjVoSTcJCFdFOx9ZaxQo="; nativeBuildInputs = [ pkgs.pkg-config ]; buildInputs = [ pkgs.openssl ]; }; in { packages = { default = website; inherit qa-api; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ nodejs git curl openssl typescript-language-server rust-analyzer rustc cargo pkg-config ]; }; } )) // { nixosModules.default = import ./module.nix self; }; }