]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - flakes/grocy/default.nix
Squash changes containing private information
[perso/Immae/Config/Nix.git] / flakes / grocy / default.nix
1 { varDir ? "/var/lib/grocy", stdenv, callPackage, composerEnv, fetchurl, src, runCommand, git, which, jq, yarn2nix-moretea }:
2 let
3 version = "2.6.1-1";
4 patchedPackages = stdenv.mkDerivation rec {
5 name = "grocy";
6 inherit src;
7 buildInputs = [ jq ];
8 patches = [ ./yarn.patch ];
9 installPhase = ''
10 mkdir $out
11 cat package.json | jq -r '.version = "${version}"' > $out/package.json
12 cp yarn.lock $out/
13 '';
14 };
15 yarnModules = yarn2nix-moretea.mkYarnModules rec {
16 name = "grocy-yarn";
17 pname = name;
18 version = version;
19 packageJSON = "${patchedPackages}/package.json";
20 yarnLock = "${patchedPackages}/yarn.lock";
21 yarnNix = ./yarn-packages.nix;
22 pkgConfig = {
23 all = {
24 buildInputs = [ git which ];
25 };
26 };
27 };
28 app = composerEnv.buildPackage (
29 import ./php-packages.nix { inherit composerEnv fetchurl; } //
30 {
31 name = "grocy";
32 inherit src;
33 noDev = true;
34 buildInputs = [ yarnModules ];
35 postInstall = ''
36 rm -rf data
37 ln -sf ${varDir}/data data
38 ln -sf ${yarnModules}/node_modules public
39 '';
40 passthru = {
41 inherit varDir yarnModules;
42 webRoot = "${app}/public";
43 };
44 }
45 );
46 in
47 app