summary refs log tree commit diff
path: root/pkgs/servers/grocy
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2020-02-07 16:34:48 +0100
committerMaximilian Bosch <maximilian@mbosch.me>2020-02-07 23:31:04 +0100
commit3d051f49babe518cef4a56708504efc941f56fde (patch)
tree5206c79255c42c7524b22d550f950a835b4e2b5c /pkgs/servers/grocy
parent5e307dc68d9ba72a056543fb0b9b9b8772515313 (diff)
downloadnixpkgs-3d051f49babe518cef4a56708504efc941f56fde.tar
nixpkgs-3d051f49babe518cef4a56708504efc941f56fde.tar.gz
nixpkgs-3d051f49babe518cef4a56708504efc941f56fde.tar.bz2
nixpkgs-3d051f49babe518cef4a56708504efc941f56fde.tar.lz
nixpkgs-3d051f49babe518cef4a56708504efc941f56fde.tar.xz
nixpkgs-3d051f49babe518cef4a56708504efc941f56fde.tar.zst
nixpkgs-3d051f49babe518cef4a56708504efc941f56fde.zip
grocy: init at 2.6.0
Diffstat (limited to 'pkgs/servers/grocy')
-rw-r--r--pkgs/servers/grocy/config-locations.patch61
-rw-r--r--pkgs/servers/grocy/default.nix32
2 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/servers/grocy/config-locations.patch b/pkgs/servers/grocy/config-locations.patch
new file mode 100644
index 00000000000..475be78ec20
--- /dev/null
+++ b/pkgs/servers/grocy/config-locations.patch
@@ -0,0 +1,61 @@
+diff --git a/app.php b/app.php
+index 5f91e4d..09c6010 100644
+--- a/app.php
++++ b/app.php
+@@ -23,7 +23,7 @@ else
+ require_once __DIR__ . '/vendor/autoload.php';

+ 

+ // Load config files

+-require_once GROCY_DATAPATH . '/config.php';

++require_once getenv('GROCY_CONFIG_FILE');

+ require_once __DIR__ . '/config-dist.php'; // For not in own config defined values we use the default ones

+ 

+ // Definitions for dev/demo/prerelease mode

+@@ -49,7 +49,7 @@ $appContainer = new \Slim\Container([
+ 	],

+ 	'view' => function($container)

+ 	{

+-		return new \Slim\Views\Blade(__DIR__ . '/views', GROCY_DATAPATH . '/viewcache');

++		return new \Slim\Views\Blade(__DIR__ . '/views', getenv('GROCY_CACHE_DIR'));

+ 	},

+ 	'LoginControllerInstance' => function($container)

+ 	{

+diff --git a/services/DatabaseService.php b/services/DatabaseService.php
+index 0bcf9b8..ec45e93 100644
+--- a/services/DatabaseService.php
++++ b/services/DatabaseService.php
+@@ -13,7 +13,7 @@ class DatabaseService
+ 			return GROCY_DATAPATH . '/grocy_' . GROCY_CULTURE . '.db';

+ 		}

+ 

+-		return GROCY_DATAPATH . '/grocy.db';

++		return getenv('GROCY_DB_FILE');

+ 	}

+ 

+ 	private $DbConnectionRaw;

+diff --git a/services/FilesService.php b/services/FilesService.php
+index 7933b73..f52657e 100644
+--- a/services/FilesService.php
++++ b/services/FilesService.php
+@@ -12,7 +12,7 @@ class FilesService extends BaseService
+ 	{

+ 		parent::__construct();

+ 		

+-		$this->StoragePath = GROCY_DATAPATH . '/storage';

++		$this->StoragePath = getenv('GROCY_STORAGE_DIR');

+ 		

+ 		if (!file_exists($this->StoragePath))

+ 		{

+diff --git a/services/StockService.php b/services/StockService.php
+index d7482ef..d1399a7 100644
+--- a/services/StockService.php
++++ b/services/StockService.php
+@@ -933,7 +933,7 @@ class StockService extends BaseService
+ 			throw new \Exception('No barcode lookup plugin defined');

+ 		}

+ 

+-		$path = GROCY_DATAPATH . "/plugins/$pluginName.php";

++		$path = getenv('GROCY_PLUGIN_DIR');

+ 		if (file_exists($path))

+ 		{

+ 			require_once $path;

diff --git a/pkgs/servers/grocy/default.nix b/pkgs/servers/grocy/default.nix
new file mode 100644
index 00000000000..7af59f6904c
--- /dev/null
+++ b/pkgs/servers/grocy/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "grocy";
+  version = "2.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/grocy/grocy/releases/download/v${version}/grocy_${version}.zip";
+    sha256 = "1d4hy495in7p0i4fnhai1yqhjhmblv1g30siggmqpjrzdiiw3bak";
+  };
+
+  nativeBuildInputs = [ unzip ];
+  unpackPhase = ''
+    unzip ${src} -d .
+  '';
+
+  patches = [ ./config-locations.patch ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/
+    cp -R . $out/
+  '';
+
+  meta = with stdenv.lib; {
+    license = licenses.mit;
+    maintainers = with maintainers; [ ma27 ];
+    description = "ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home";
+    homepage = "https://grocy.info/";
+  };
+}