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