mifasol.nix (1216B)
1 { 2 lib, 3 buildGoModule, 4 fetchFromGitHub, 5 alsa-lib, 6 pkg-config, 7 }: 8 buildGoModule rec { 9 pname = "mifasol"; 10 version = "0.5.0"; 11 12 src = fetchFromGitHub { 13 owner = "jypelle"; 14 repo = "mifasol"; 15 rev = "v${version}"; 16 hash = "sha256-zlCkK2E9Yqut2CyFh14wNgdltJKh/j132QwG51ULeWQ="; 17 }; 18 19 proxyVendor = true; 20 vendorHash = "sha256-OO+0Qlu0OeBz/X2/Ihl6SKzRazIK3nb+Qk0DyOBdyyE="; 21 22 subPackages = ["cmd/mifasolsrv" "cmd/mifasolcli"]; 23 24 nativeBuildInputs = [pkg-config]; 25 buildInputs = [alsa-lib]; 26 27 preBuild = '' 28 GOOS=js GOARCH=wasm go build \ 29 -o internal/srv/webSrv/clients/mifasolcliwa.wasm ./cmd/mifasolcliwa 30 gzip -9 -n -f internal/srv/webSrv/clients/mifasolcliwa.wasm 31 32 goroot=$(go env GOROOT) 33 if [ -f "$goroot/lib/wasm/wasm_exec.js" ]; then 34 cp "$goroot/lib/wasm/wasm_exec.js" internal/srv/webSrv/static/js/ 35 else 36 cp "$goroot/misc/wasm/wasm_exec.js" internal/srv/webSrv/static/js/ 37 fi 38 ''; 39 40 ldflags = ["-s" "-w"]; 41 42 meta = { 43 description = "Self-hosted music server (FLAC/MP3) with console client and WebAssembly web UI"; 44 homepage = "https://github.com/jypelle/mifasol"; 45 license = lib.licenses.mit; 46 mainProgram = "mifasolsrv"; 47 }; 48 }