Mirror of @tangled.org/core. Running on a Raspberry Pi Zero 2 (Please be gentle).

nix: dedup appview static files into a package, and use that everywhere, including copying before watching appview

Signed-off-by: dusk <y.bera003.06@protonmail.com>

authored by ptr.pet and committed by

Tangled bdf27f0d 7a076be1

+39 -30
+13 -16
flake.nix
··· 75 75 }; 76 76 genjwks = self.callPackage ./nix/pkgs/genjwks.nix {}; 77 77 lexgen = self.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;}; 78 - appview = self.callPackage ./nix/pkgs/appview.nix { 78 + appview-static-files = self.callPackage ./nix/pkgs/appview-static-files.nix { 79 79 inherit htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src; 80 80 }; 81 + appview = self.callPackage ./nix/pkgs/appview.nix {}; 81 82 spindle = self.callPackage ./nix/pkgs/spindle.nix {}; 82 83 knot-unwrapped = self.callPackage ./nix/pkgs/knot-unwrapped.nix {}; 83 84 knot = self.callPackage ./nix/pkgs/knot.nix {}; ··· 94 93 staticPackages = mkPackageSet pkgs.pkgsStatic; 95 94 crossPackages = mkPackageSet pkgs.pkgsCross.gnu64.pkgsStatic; 96 95 in { 97 - appview = packages.appview; 98 - lexgen = packages.lexgen; 99 - knot = packages.knot; 100 - knot-unwrapped = packages.knot-unwrapped; 101 - spindle = packages.spindle; 102 - genjwks = packages.genjwks; 103 - sqlite-lib = packages.sqlite-lib; 96 + inherit (packages) appview appview-static-files lexgen genjwks spindle knot knot-unwrapped sqlite-lib; 104 97 105 98 pkgsStatic-appview = staticPackages.appview; 106 99 pkgsStatic-knot = staticPackages.knot; ··· 127 132 pkgs.tailwindcss 128 133 pkgs.nixos-shell 129 134 pkgs.redis 135 + pkgs.coreutils # for those of us who are on systems that use busybox (alpine) 130 136 packages'.lexgen 131 137 ]; 132 138 shellHook = '' 133 - mkdir -p appview/pages/static/{fonts,icons} 134 - cp -f ${htmx-src} appview/pages/static/htmx.min.js 135 - cp -f ${htmx-ws-src} appview/pages/static/htmx-ext-ws.min.js 136 - cp -rf ${lucide-src}/*.svg appview/pages/static/icons/ 137 - cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/ 138 - cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/ 139 - cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/ 139 + mkdir -p appview/pages/static 140 + # no preserve is needed because watch-tailwind will want to be able to overwrite 141 + cp -frv --no-preserve=ownership ${packages'.appview-static-files}/* appview/pages/static 140 142 export TANGLED_OAUTH_JWKS="$(${packages'.genjwks}/bin/genjwks)" 141 143 ''; 142 144 env.CGO_ENABLED = 1; ··· 141 149 }); 142 150 apps = forAllSystems (system: let 143 151 pkgs = nixpkgsFor."${system}"; 152 + packages' = self.packages.${system}; 144 153 air-watcher = name: arg: 145 154 pkgs.writeShellScriptBin "run" 146 155 '' ··· 160 167 in { 161 168 watch-appview = { 162 169 type = "app"; 163 - program = ''${air-watcher "appview" ""}/bin/run''; 170 + program = toString (pkgs.writeShellScript "watch-appview" '' 171 + echo "copying static files to appview/pages/static..." 172 + ${pkgs.coreutils}/bin/cp -frv --no-preserve=ownership ${packages'.appview-static-files}/* appview/pages/static 173 + ${air-watcher "appview" ""}/bin/run 174 + ''); 164 175 }; 165 176 watch-knot = { 166 177 type = "app";
+23
nix/pkgs/appview-static-files.nix
··· 1 + { 2 + runCommandLocal, 3 + htmx-src, 4 + htmx-ws-src, 5 + lucide-src, 6 + inter-fonts-src, 7 + ibm-plex-mono-src, 8 + sqlite-lib, 9 + tailwindcss, 10 + src, 11 + }: 12 + runCommandLocal "appview-static-files" {} '' 13 + mkdir -p $out/{fonts,icons} && cd $out 14 + cp -f ${htmx-src} htmx.min.js 15 + cp -f ${htmx-ws-src} htmx-ext-ws.min.js 16 + cp -rf ${lucide-src}/*.svg icons/ 17 + cp -f ${inter-fonts-src}/web/InterVariable*.woff2 fonts/ 18 + cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 fonts/ 19 + cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 fonts/ 20 + # tailwindcss -c $src/tailwind.config.js -i $src/input.css -o tw.css won't work 21 + # for whatever reason (produces broken css), so we are doing this instead 22 + cd ${src} && ${tailwindcss}/bin/tailwindcss -i input.css -o $out/tw.css 23 + ''
+3 -14
nix/pkgs/appview.nix
··· 1 1 { 2 2 buildGoApplication, 3 3 modules, 4 - htmx-src, 5 - htmx-ws-src, 6 - lucide-src, 7 - inter-fonts-src, 8 - ibm-plex-mono-src, 9 - tailwindcss, 4 + appview-static-files, 10 5 sqlite-lib, 11 6 src, 12 7 }: ··· 12 17 13 18 postUnpack = '' 14 19 pushd source 15 - mkdir -p appview/pages/static/{fonts,icons} 16 - cp -f ${htmx-src} appview/pages/static/htmx.min.js 17 - cp -f ${htmx-ws-src} appview/pages/static/htmx-ext-ws.min.js 18 - cp -rf ${lucide-src}/*.svg appview/pages/static/icons/ 19 - cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/ 20 - cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/ 21 - cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/ 22 - ${tailwindcss}/bin/tailwindcss -i input.css -o appview/pages/static/tw.css 20 + mkdir -p appview/pages/static 21 + cp -frv ${appview-static-files}/* appview/pages/static 23 22 popd 24 23 ''; 25 24