]> git.giacomolli.uk - onechat/blob - nix/package.nix
Order daemon and storage declarations
[onechat] / nix / package.nix
1 {
2 lib,
3 buildGoModule,
4 src,
5 version,
6 callPackage,
7 whisper-cpp,
8 }:
9 let
10 model = (callPackage ./voice-model.nix { }).small;
11 in
12 buildGoModule {
13 pname = "onechat";
14 inherit src version;
15
16 subPackages = [ "." ];
17 ldflags = [
18 "-X main.version=${version}"
19 "-X main.voiceTranscriberPath=${whisper-cpp}/bin/whisper-cli"
20 "-X main.voiceModelPath=${model}"
21 ];
22 vendorHash = "sha256-nRDUAGSXAK5/L2xyfDh3NbMOZmrGGEIm4vtgfWsxHYU=";
23
24 # The flake check runs the full replay.
25 checkFlags = [ "-short" ];
26
27 postInstall = ''
28 mkdir -p "$out/share/systemd/user"
29 substitute ${./onechat.service} "$out/share/systemd/user/onechat.service" \
30 --subst-var-by onechat "$out/bin/onechat"
31 '';
32
33 doInstallCheck = true;
34 installCheckPhase = ''
35 runHook preInstallCheck
36 [[ "$("$out/bin/onechat" help)" == "Usage: onechat "* ]]
37 [[ "$("$out/bin/onechat" version)" == "${version}" ]]
38 runHook postInstallCheck
39 '';
40
41 meta = {
42 description = "OneChat";
43 mainProgram = "onechat";
44 platforms = lib.platforms.linux;
45 };
46 }