vuls: init at 0.27.0 (#348530)
[NixPkgs.git] / pkgs / by-name / sy / syncyomi / package.nix
blob81f2982a05be450b0b4c2920eb6bcb73b87d52ce
1 { lib
2 , stdenvNoCC
3 , fetchFromGitHub
4 , buildGoModule
5 , nodejs
6 , pnpm_9
7 , esbuild
8 }:
10 buildGoModule rec {
11   pname = "syncyomi";
12   version = "1.1.1";
14   src = fetchFromGitHub {
15     owner = "SyncYomi";
16     repo = "SyncYomi";
17     rev = "refs/tags/v${version}";
18     hash = "sha256-90MA62Zm9ouaf+CnYsbOm/njrUui21vW/VrwKYfsCZs=";
19   };
21   vendorHash = "sha256-/rpT6SatIZ+GVzmVg6b8Zy32pGybprObotyvEgvdL2w=";
23   web = stdenvNoCC.mkDerivation (finalAttrs: {
24     pname = "${pname}-web";
25     inherit src version;
26     sourceRoot = "${finalAttrs.src.name}/web";
28     pnpmDeps = pnpm_9.fetchDeps {
29       inherit (finalAttrs) pname version src sourceRoot;
30       hash = "sha256-25Bg8sTeH/w25KdfwgZNoqBXz2d5c1QD5vGb33xpTCA=";
31     };
33     nativeBuildInputs = [
34       nodejs
35       pnpm_9.configHook
36     ];
38     env.ESBUILD_BINARY_PATH = lib.getExe (esbuild.override {
39       buildGoModule = args: buildGoModule (args // rec {
40         version = "0.17.19";
41         src = fetchFromGitHub {
42           owner = "evanw";
43           repo = "esbuild";
44           rev = "v${version}";
45           hash = "sha256-PLC7OJLSOiDq4OjvrdfCawZPfbfuZix4Waopzrj8qsU=";
46         };
47         vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
48       });
49     });
51     buildPhase = ''
52       runHook preBuild
53       pnpm build
54       runHook postBuild
55     '';
57     installPhase = ''
58       runHook preInstall
59       cp -r dist $out
60       runHook postInstall
61     '';
62   });
64   preConfigure = ''
65     cp -r $web/* web/dist
66   '';
68   ldflags = [
69     "-s" "-w"
70     "-X main.version=v${version}"
71   ];
73   postInstall = lib.optionalString (!stdenvNoCC.hostPlatform.isDarwin) ''
74     mv $out/bin/SyncYomi $out/bin/syncyomi
75   '';
77   meta = {
78     description = "Open-source project to synchronize Tachiyomi manga reading progress and library across multiple devices";
79     homepage = "https://github.com/SyncYomi/SyncYomi";
80     changelog = "https://github.com/SyncYomi/SyncYomi/releases/tag/v${version}";
81     license = lib.licenses.gpl2Only;
82     maintainers = with lib.maintainers; [ eriedaberrie ];
83     mainProgram = "syncyomi";
84     platforms = lib.platforms.linux ++ lib.platforms.darwin;
85   };