btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / wo / workout-tracker / package.nix
blob51b68e65a280646e3e4ec1332a26c1a431a3e91e
2   lib,
3   buildGoModule,
4   buildNpmPackage,
5   fetchFromGitHub,
6   nix-update-script,
7   nixosTests,
8   ...
9 }:
10 let
11   pname = "workout-tracker";
12   version = "1.18.1";
14   src = fetchFromGitHub {
15     owner = "jovandeginste";
16     repo = "workout-tracker";
17     rev = "refs/tags/v${version}";
18     hash = "sha256-Sn6SOHrsp1ZgsPntc2+cmlAEPVBUrYv1vKLKAQvT9m4=";
19   };
21   assets = buildNpmPackage {
22     pname = "${pname}-assets";
23     inherit version src;
24     npmDepsHash = "sha256-jHpvCMgjGvaAOfbslaIKfIRiPafScpn3WLnYamm+lbs=";
25     dontNpmBuild = true;
26     postPatch = ''
27       rm Makefile
28     '';
29     installPhase = ''
30       runHook preInstall
31       cp -r . "$out"
32       runHook postInstall
33     '';
34   };
36 buildGoModule rec {
37   inherit pname version src;
39   vendorHash = null;
41   postPatch = ''
42     ln -s ${assets}/node_modules ./node_modules
43     make build-dist
44   '';
46   passthru.updateScript = nix-update-script { };
48   passthru.tests = {
49     inherit (nixosTests) workout-tracker;
50   };
52   meta = {
53     changelog = "https://github.com/jovandeginste/workout-tracker/releases/tag/v${version}";
54     description = "Workout tracking web application for personal use";
55     homepage = "https://github.com/jovandeginste/workout-tracker";
56     license = lib.licenses.mit;
57     mainProgram = "workout-tracker";
58     maintainers = with lib.maintainers; [ bhankas ];
59   };