diff options
Diffstat (limited to 'flakes/grocy/default.nix')
-rw-r--r-- | flakes/grocy/default.nix | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/flakes/grocy/default.nix b/flakes/grocy/default.nix new file mode 100644 index 0000000..26b6ed8 --- /dev/null +++ b/flakes/grocy/default.nix | |||
@@ -0,0 +1,47 @@ | |||
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 | ||