wallabag: fix config file not being loaded from WALLABAG_DATA

This commit is contained in:
schneefux 2018-01-03 22:06:07 +01:00
parent 40ab1bed8a
commit 012ead33e7
No known key found for this signature in database
GPG key ID: 50F2BF336737C2F0
2 changed files with 32 additions and 7 deletions

View file

@ -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;
};
}

View file

@ -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)