fix: cleanup flake and repo

This commit is contained in:
Jet 2026-03-28 20:13:12 -07:00
parent 17d708eb7a
commit 9a5256e8f0
No known key found for this signature in database
7 changed files with 197 additions and 530 deletions

View file

@ -2,93 +2,38 @@
description = "Jet Pham's personal website";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
flake-utils.url = "github:numtide/flake-utils";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
{
self,
nixpkgs,
rust-overlay,
flake-utils,
agenix,
}:
(flake-utils.lib.eachDefaultSystem (
system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { inherit system overlays; };
agenixPkg = agenix.packages.${system}.default;
rustToolchain = pkgs.rust-bin.selectLatestNightlyWith (
toolchain:
toolchain.default.override {
extensions = [ "rust-src" ];
targets = [ "wasm32-unknown-unknown" ];
}
);
rustPlatform = pkgs.makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
};
cgol-wasm = rustPlatform.buildRustPackage {
pname = "cgol-wasm";
version = "0.1.0";
src = ./cgol;
cargoLock.lockFile = ./cgol/Cargo.lock;
doCheck = false;
nativeBuildInputs = [
pkgs.wasm-bindgen-cli
pkgs.binaryen
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
];
buildPhase = ''
runHook preBuild
cargo build --release --frozen --target wasm32-unknown-unknown
wasm-bindgen --target web --out-dir pkg target/wasm32-unknown-unknown/release/cgol.wasm
wasm-opt pkg/cgol_bg.wasm -o pkg/cgol_bg.wasm -O4 \
--enable-bulk-memory --enable-nontrapping-float-to-int \
--enable-sign-ext --low-memory-unused --converge
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp pkg/cgol_bg.wasm $out/
cp pkg/cgol.js $out/
cp pkg/cgol.d.ts $out/
cp pkg/cgol_bg.wasm.d.ts $out/ 2>/dev/null || true
cat > $out/package.json <<'EOF'
{
"name": "cgol",
"type": "module",
"version": "0.1.0",
"files": ["cgol_bg.wasm", "cgol.js", "cgol.d.ts"],
"main": "cgol.js",
"types": "cgol.d.ts",
"sideEffects": ["./snippets/*"]
}
EOF
runHook postInstall
'';
};
# Stage 2: Build the website with npm
website = pkgs.buildNpmPackage {
pname = "jet-website";
version = "0.1.0";
src = pkgs.lib.cleanSource ./.;
npmDepsHash = "sha256-O4ZUSYyVWOxP15saIadsaZuRO47Y0AvsL4pwvo5b76U=";
# Inject the Nix-built WASM before npm install resolves file: dep
postPatch = ''
mkdir -p cgol/pkg
cp -r ${cgol-wasm}/* cgol/pkg/
'';
src = websiteSrc;
npmDepsHash = "sha256-UDz4tXNvEa8uiDDGg16K9JbNeQZR3BsVNKtuOgcyurQ=";
installPhase = ''
runHook preInstall
@ -110,7 +55,6 @@
{
packages = {
default = website;
cgol-wasm = cgol-wasm;
inherit qa-api;
};
devShells.default = pkgs.mkShell {
@ -119,12 +63,11 @@
git
curl
openssl
agenixPkg
typescript-language-server
rust-analyzer
rustc
cargo
pkg-config
wasm-pack
binaryen
rustToolchain
];
};
}