Merge pull request #33518 from schneefux/pkg.wallabag

wallabag: fix config file not being loaded from WALLABAG_DATA
This commit is contained in:
Joachim F 2018-02-17 10:47:23 +00:00 committed by GitHub
commit c826025163
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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)