Coffee journaling on ATProto (alpha) alpha.arabica.social
coffee
at main 58 lines 1.5 kB view raw
1{ lib, buildGoModule, templ, tailwindcss }: 2 3buildGoModule { 4 pname = "arabica"; 5 version = "0.1.0"; 6 src = ./.; 7 vendorHash = "sha256-eNImqD4Zof/KjKT8Htd392WzJi0lJUeliIAXlrDeWKc="; 8 9 nativeBuildInputs = [ templ tailwindcss ]; 10 11 preBuild = '' 12 tailwindcss -i static/css/app.css -o static/css/output.css --minify 13 templ generate 14 ''; 15 16 buildPhase = '' 17 runHook preBuild 18 go build -o arabica cmd/server/main.go 19 runHook postBuild 20 ''; 21 22 installPhase = let 23 wrapperScript = '' 24 #!/bin/sh 25 SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" 26 SHARE_DIR="$SCRIPT_DIR/../share/arabica" 27 28 # Set default database path if not specified 29 # Uses XDG_DATA_HOME or falls back to ~/.local/share 30 if [ -z "$ARABICA_DB_PATH" ]; then 31 DATA_DIR="''${XDG_DATA_HOME:-$HOME/.local/share}/arabica" 32 mkdir -p "$DATA_DIR" 33 export ARABICA_DB_PATH="$DATA_DIR/arabica.db" 34 fi 35 36 cd "$SHARE_DIR" 37 exec "$SCRIPT_DIR/arabica-unwrapped" "$@" 38 ''; 39 in '' 40 mkdir -p $out/bin 41 mkdir -p $out/share/arabica 42 43 # Copy static files 44 cp -r static $out/share/arabica/ 45 cp arabica $out/bin/arabica-unwrapped 46 cat > $out/bin/arabica <<'WRAPPER' 47 ${wrapperScript} 48 WRAPPER 49 chmod +x $out/bin/arabica 50 ''; 51 52 meta = with lib; { 53 description = "Arabica - Coffee brew tracker"; 54 license = licenses.mit; 55 platforms = platforms.linux; 56 mainProgram = "arabica"; 57 }; 58}