X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/5023a5ff75de371f147392be54aec7737fca36a5..f5c601f1801aaa276f8c335fcb51c373edc0b50c:/nix/package.nix diff --git a/nix/package.nix b/nix/package.nix index 47cb139..c3fa562 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -2,19 +2,39 @@ lib, buildGoModule, src, + version, + callPackage, + whisper-cpp, }: +let + model = (callPackage ./voice-model.nix { }).small; +in buildGoModule { pname = "onechat"; - version = "0.1.0"; - inherit src; + inherit src version; subPackages = [ "." ]; - vendorHash = "sha256-/h5U9uZRK5I2DkM5xETswrg0ouuLfMUz7LBOWP+edgw="; + ldflags = [ + "-X main.version=${version}" + "-X main.voiceTranscriberPath=${whisper-cpp}/bin/whisper-cli" + "-X main.voiceModelPath=${model}" + ]; + vendorHash = "sha256-nRDUAGSXAK5/L2xyfDh3NbMOZmrGGEIm4vtgfWsxHYU="; + + # The flake check runs the full replay. + checkFlags = [ "-short" ]; + + postInstall = '' + mkdir -p "$out/share/systemd/user" + substitute ${./onechat.service} "$out/share/systemd/user/onechat.service" \ + --subst-var-by onechat "$out/bin/onechat" + ''; doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck - test "$("$out/bin/onechat")" = onechat + [[ "$("$out/bin/onechat" help)" == "Usage: onechat "* ]] + [[ "$("$out/bin/onechat" version)" == "${version}" ]] runHook postInstallCheck '';