update/navibeat
 1{
 2  lib,
 3  buildGoModule,
 4  fetchFromGitHub,
 5  callPackage,
 6  miaomiaowu-frontend ? callPackage ./frontend.nix {},
 7}: let
 8  version = "0.9.0";
 9
10  src = fetchFromGitHub {
11    owner = "iluobei";
12    repo = "miaomiaowu";
13    tag = "v${version}";
14    hash = "sha256-vglyDiDjGPgydXgE686QpcUlzqKxFvw0UHTNPaXoPYc=";
15  };
16in
17  buildGoModule (finalAttrs: {
18    pname = "miaomiaowu";
19    inherit version src;
20
21    passthru.updateScript = [(toString ./update.sh)];
22
23    vendorHash = "sha256-XmenS+iapYZDpyhZtObohoZaYEZfmKPFLFuYJaXXIOc=";
24
25    subPackages = ["./cmd/server"];
26
27    ldflags = ["-s" "-w"];
28
29    postPatch = ''
30      mkdir -p internal/web/dist
31      cp -r ${miaomiaowu-frontend}/* internal/web/dist/
32    '';
33
34    postInstall = ''
35      mv $out/bin/server $out/bin/${finalAttrs.pname}
36    '';
37
38    meta = {
39      description = "Personal Clash subscriptions management system";
40      homepage = "https://github.com/iluobei/miaomiaowu";
41      license = lib.licenses.mit;
42      platforms = lib.platforms.linux;
43    };
44  })