X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=pkgs%2Fwebapps%2Fgrocy%2Fdefault.nix;fp=pkgs%2Fwebapps%2Fgrocy%2Fdefault.nix;h=3a8e55a5921a66d0dcf1bc04d41b1f6ea978e705;hb=2c58f2ddbd86751724728c0d5ee7ffe60cfc0ed0;hp=0000000000000000000000000000000000000000;hpb=98a4617ca7a6f5ba78a078b1442a8651987e9070;p=perso%2FImmae%2FConfig%2FNix%2FNUR.git diff --git a/pkgs/webapps/grocy/default.nix b/pkgs/webapps/grocy/default.nix new file mode 100644 index 00000000..3a8e55a5 --- /dev/null +++ b/pkgs/webapps/grocy/default.nix @@ -0,0 +1,45 @@ +{ 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