diff --git a/pkgs/servers/web-apps/wallabag/default.nix b/pkgs/servers/web-apps/wallabag/default.nix index e6137a2db7c..07b530f4ef7 100644 --- a/pkgs/servers/web-apps/wallabag/default.nix +++ b/pkgs/servers/web-apps/wallabag/default.nix @@ -13,13 +13,11 @@ stdenv.mkDerivation rec { outputs = [ "out" ]; - patchPhase = '' + patches = [ ./wallabag-data.patch ]; # exposes $WALLABAG_DATA + + prePatch = '' rm Makefile # use the "shared hosting" package with bundled dependencies - substituteInPlace app/AppKernel.php \ - --replace "__DIR__" "getenv('WALLABAG_DATA')" - substituteInPlace var/bootstrap.php.cache \ - --replace "\$this->rootDir = \$this->getRootDir()" "\$this->rootDir = getenv('WALLABAG_DATA')" - ''; # exposes $WALLABAG_DATA + ''; installPhase = '' mkdir $out/ @@ -31,11 +29,12 @@ stdenv.mkDerivation rec { longDescription = '' wallabag is a self hostable application for saving web pages. - To use, point the environment variable $WALLABAG_DATA to a directory called `app` that contains the folder `config` with wallabag's configuration files. These need to be updated every package upgrade. In `app`'s parent folder, a directory called `var` containing wallabag's data will be created. + Point the environment variable $WALLABAG_DATA to a data directory that contains the folder `app/config` which must be a clone of wallabag's configuration files with your customized `parameters.yml`. These need to be updated every package upgrade. After a package upgrade, empty the `var/cache` folder. ''; license = licenses.mit; homepage = http://wallabag.org; + maintainers = with maintainers; [ schneefux ]; platforms = platforms.all; }; } diff --git a/pkgs/servers/web-apps/wallabag/wallabag-data.patch b/pkgs/servers/web-apps/wallabag/wallabag-data.patch new file mode 100644 index 00000000000..086e9395980 --- /dev/null +++ b/pkgs/servers/web-apps/wallabag/wallabag-data.patch @@ -0,0 +1,26 @@ +diff --git a/app/AppKernel.php b/app/AppKernel.php +index 40726f05..7d44e600 100644 +--- a/app/AppKernel.php ++++ b/app/AppKernel.php +@@ -58,14 +58,19 @@ class AppKernel extends Kernel + return $bundles; + } + ++ public function getProjectDir() ++ { ++ return getenv('WALLABAG_DATA') ?: dirname(__DIR__); ++ } ++ + public function getCacheDir() + { +- return dirname(__DIR__) . '/var/cache/' . $this->getEnvironment(); ++ return $this->getProjectDir() . '/var/cache/' . $this->getEnvironment(); + } + + public function getLogDir() + { +- return dirname(__DIR__) . '/var/logs'; ++ return $this->getProjectDir() . '/var/logs'; + } + + public function registerContainerConfiguration(LoaderInterface $loader)