--- /dev/null
+{ varDir ? "/var/lib/grocy", stdenv, callPackage, composerEnv, fetchurl, mylibs, runCommand, git, which, jq }:
+let
+ version = "2.6.1-1";
+ packagesource = mylibs.fetchedGithub ./grocy.json;
+ patchedPackages = stdenv.mkDerivation (packagesource // rec {
+ buildInputs = [ jq ];
+ patches = [ ./yarn.patch ];
+ installPhase = ''
+ mkdir $out
+ cat package.json | jq -r '.version = "${version}"' > $out/package.json
+ cp yarn.lock $out/
+ '';
+ });
+ yarnModules = mylibs.yarn2nixPackage.mkYarnModules rec {
+ name = "grocy-yarn";
+ pname = name;
+ version = version;
+ packageJSON = "${patchedPackages}/package.json";
+ yarnLock = "${patchedPackages}/yarn.lock";
+ yarnNix = ./yarn-packages.nix;
+ pkgConfig = {
+ all = {
+ buildInputs = [ git which mylibs.yarn2nixPackage.src ];
+ };
+ };
+ };
+ app = composerEnv.buildPackage (
+ import ./php-packages.nix { inherit composerEnv fetchurl; } //
+ packagesource //
+ {
+ noDev = true;
+ buildInputs = [ yarnModules ];
+ postInstall = ''
+ rm -rf data
+ ln -sf ${varDir}/data data
+ ln -sf ${yarnModules}/node_modules public
+ '';
+ passthru = {
+ inherit varDir yarnModules;
+ webRoot = "${app}/public";
+ };
+ }
+ );
+in
+ app