nix

configuration files that power my machines
Log | Files | Refs | README | LICENSE

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 }