4 files changed,
+8,
-90
+8,
-90
1@@ -42,58 +42,13 @@
2 };
3 };
4
5- rtw-package = { pkgs, lib, buildGoModule, stdenvNoCC, ... }:
6- let
7- rtw-pnpm-deps = stdenvNoCC.mkDerivation {
8- pname = "rtw-pnpm-deps";
9- version = "0.1.0";
10- src = ./client;
11-
12- nativeBuildInputs = [
13- pkgs.nodejs
14- pkgs.pnpm
15- pkgs.jq
16- pkgs.cacert
17- ];
18-
19- dontConfigure = true;
20- dontFixup = true;
21-
22- buildPhase = ''
23- export HOME=$TMPDIR
24- # Remove packageManager field to prevent corepack from trying
25- # to download a specific pnpm version in the sandbox
26- jq 'del(.packageManager)' package.json > package.json.tmp
27- mv package.json.tmp package.json
28- pnpm install --frozen-lockfile --ignore-scripts
29- '';
30-
31- installPhase = ''
32- mkdir -p $out
33- cp -r node_modules $out/
34- find $out/node_modules -name ".modules.yaml" -delete
35- find $out/node_modules -name "*.log" -delete
36- '';
37-
38- outputHashAlgo = "sha256";
39- outputHashMode = "recursive";
40- outputHash = "sha256-6pF2zbsGml0UL4tGKx3K5BjFTr6Enk2E6ka786c3VoA=";
41- };
42- in
43+ rtw-package = { pkgs, lib, buildGoModule, ... }:
44 buildGoModule {
45 pname = "rtw";
46 version = "0.1.0";
47
48 src = ./.;
49
50- nativeBuildInputs = [
51- pkgs.nodejs
52- pkgs.pnpm
53- pkgs.esbuild
54- pkgs.templ
55- pkgs.tailwindcss_4
56- ];
57-
58 buildInputs = [
59 pkgs.brotli
60 ];
61@@ -102,57 +57,21 @@
62 modRoot = "server";
63
64 # Build only the server command
65- subPackages = [ "cmd/server" ];
66+ subPackages = [ "cmd/rtw" ];
67
68 # Disable workspace so ygo is fetched from proxy, not ../ygo
69 GOWORK = "off";
70 env.CGO_ENABLED = "1";
71
72- # Placeholder — compute in Task 3
73- vendorHash = lib.fakeHash;
74+ # Compute by running: nix build .#rtw
75+ # Then copy the hash from the error message
76+ vendorHash = "sha256-TtKY67qnriW7OYTlDTNoJD1nvyVw2YVSM8davHK8Evs=";
77
78 doCheck = false;
79
80- # Generate all assets before Go compilation
81- preBuild = ''
82- export HOME=$TMPDIR
83-
84- mkdir -p server/pages/static/js server/pages/static/css
85-
86- # Copy pre-installed client dependencies
87- rm -rf client/node_modules
88- cp -r ${rtw-pnpm-deps}/node_modules client/
89- chmod -R +w client/node_modules
90-
91- # Build client assets (vite outputs to ../server/pages/static/)
92- pushd client
93- pnpm run build
94- popd
95-
96- # Bundle service worker
97- esbuild ./client/src/sw.js \\
98- --bundle \\
99- --outfile=./server/pages/static/js/sw.js \\
100- --minify \\
101- --format=iife \\
102- --platform=browser \\
103- --target=es2015
104-
105- # Generate server-rendered CSS
106- pushd server
107- tailwindcss -m --cwd pages/ -i index.css -o static/css/style.css
108- popd
109-
110- # Generate templ Go files
111- pushd server
112- templ generate
113- popd
114- '';
115-
116- # Rename binary from "server" to "rtw"
117- postInstall = ''
118- mv $out/bin/server $out/bin/rtw
119- '';
120+ overrideModAttrs = old: {
121+ GOWORK = "off";
122+ };
123
124 meta = {
125 description = "RTW adventure motorcycle trip planning server";
126@@ -185,7 +104,6 @@
127 pkgs.go
128 pkgs.coreutils
129 pkgs.bash
130- pkgs.templ
131 pkgs.gnumake
132 pkgs.brotli
133 pkgs.esbuild
R server/cmd/server/config.go =>
server/cmd/rtw/config.go
+0,
-0
R server/cmd/server/server.go =>
server/cmd/rtw/server.go
+0,
-0
R server/cmd/server/server_test.go =>
server/cmd/rtw/server_test.go
+0,
-0