btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / da / daed / package.nix
blob8618a3212fb2444869afad0f020b0812c213dad4
2   pnpm,
3   nodejs,
4   stdenv,
5   clang,
6   buildGoModule,
7   fetchFromGitHub,
8   lib,
9 }:
11 let
12   pname = "daed";
13   version = "0.8.0";
14   src = fetchFromGitHub {
15     owner = "daeuniverse";
16     repo = "daed";
17     rev = "refs/tags/v${version}";
18     hash = "sha256-h1j91XIumuzuJnMxgkCjhuXYPLXoDuFFsfmDwmzlTEI=";
19     fetchSubmodules = true;
20   };
22   web = stdenv.mkDerivation {
23     inherit pname version src;
25     pnpmDeps = pnpm.fetchDeps {
26       inherit pname version src;
27       hash = "sha256-vqkiZzd5WOeJem0zUyMsJd6/aHHAjlsIQMkNf+SUvHY=";
28     };
30     nativeBuildInputs = [
31       nodejs
32       pnpm.configHook
33     ];
35     buildPhase = ''
36       runHook preBuild
37       pnpm build
38       runHook postBuild
39     '';
41     installPhase = ''
42       runHook preInstall
43       mkdir -p $out
44       cp -R dist/* $out/
45       runHook postInstall
46     '';
47   };
49 buildGoModule rec {
50   inherit pname version src;
51   sourceRoot = "${src.name}/wing";
53   vendorHash = "sha256-TBR3MmpTdwIwyekU+nrHhzsN31E30+Rqd3FoBL3dl4U=";
54   proxyVendor = true;
56   nativeBuildInputs = [ clang ];
58   hardeningDisable = [ "zerocallusedregs" ];
60   prePatch = ''
61     substituteInPlace Makefile \
62       --replace-fail /bin/bash /bin/sh
64     # ${web} does not have write permission
65     mkdir dist
66     cp -r ${web}/* dist
67     chmod -R 755 dist
68   '';
70   buildPhase = ''
71     runHook preBuild
73     make CFLAGS="-D__REMOVE_BPF_PRINTK -fno-stack-protector -Wno-unused-command-line-argument" \
74       NOSTRIP=y \
75       WEB_DIST=dist \
76       AppName=${pname} \
77       VERSION=${version} \
78       OUTPUT=$out/bin/daed \
79       bundle
81     runHook postBuild
82   '';
84   meta = {
85     description = "Modern dashboard with dae";
86     homepage = "https://github.com/daeuniverse/daed";
87     license = lib.licenses.mit;
88     maintainers = with lib.maintainers; [ oluceps ];
89     platforms = lib.platforms.linux;
90     mainProgram = "daed";
91   };