mirror of
https://github.com/grocy/grocy.git
synced 2026-04-05 20:36:15 +02:00
Merge branch 'master' into simplify-release-asset-naming
This commit is contained in:
commit
ad2bee88d7
|
|
@ -2,4 +2,5 @@
|
|||
- Fixed a PHP notice on the recipes page when there are no recipes (thanks @mrunkel)
|
||||
|
||||
### General & other improvements
|
||||
- Prerequisites (PHP extensions, critical files/folders) will now be checked and properly reported if there are problems (thanks @Forceu)
|
||||
- Improved the the overview pages on mobile devices (main column was hidden) (thanks @Mik-)
|
||||
|
|
|
|||
62
helpers/PrerequisiteChecker.php
Normal file
62
helpers/PrerequisiteChecker.php
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
class ERequirementNotMet extends Exception { }
|
||||
|
||||
const REQUIRED_PHP_EXTENSIONS = array('fileinfo', 'pdo_sqlite', 'gd');
|
||||
|
||||
class PrerequisiteChecker
|
||||
{
|
||||
public function checkRequirements()
|
||||
{
|
||||
self::checkForConfigFile();
|
||||
self::checkForConfigDistFile();
|
||||
self::checkForComposer();
|
||||
self::checkForYarn();
|
||||
self::checkForPhpExtensions();
|
||||
}
|
||||
|
||||
|
||||
private function checkForConfigFile()
|
||||
{
|
||||
if (!file_exists(__DIR__ . '/../data/config.php'))
|
||||
{
|
||||
throw new ERequirementNotMet('/data/config.php not found. Have you copied config-dist.php to the data directory and renamed it to config.php?');
|
||||
}
|
||||
}
|
||||
|
||||
private function checkForConfigDistFile()
|
||||
{
|
||||
if (!file_exists(__DIR__ . '/../config-dist.php'))
|
||||
{
|
||||
throw new ERequirementNotMet('config-dist.php not found. Please do not remove this file.');
|
||||
}
|
||||
}
|
||||
|
||||
private function checkForComposer()
|
||||
{
|
||||
if (!file_exists(__DIR__ . '/../vendor/autoload.php'))
|
||||
{
|
||||
throw new ERequirementNotMet('/vendor/autoload.php not found. Have you run Composer?');
|
||||
}
|
||||
}
|
||||
|
||||
private function checkForYarn()
|
||||
{
|
||||
if (!file_exists(__DIR__ . '/../public/node_modules'))
|
||||
{
|
||||
throw new ERequirementNotMet('/public/node_modules not found. Have you run Yarn?');
|
||||
}
|
||||
}
|
||||
|
||||
private function checkForPhpExtensions()
|
||||
{
|
||||
$loadedExtensions = get_loaded_extensions();
|
||||
foreach (REQUIRED_PHP_EXTENSIONS as $extension)
|
||||
{
|
||||
if (!in_array($extension, $loadedExtensions))
|
||||
{
|
||||
throw new ERequirementNotMet("PHP module '{$extension}' not installed, but required.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,14 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__ . '/../helpers/PrerequisiteChecker.php';
|
||||
|
||||
try
|
||||
{
|
||||
(new PrerequisiteChecker)->checkRequirements();
|
||||
}
|
||||
catch (ERequirementNotMet $ex)
|
||||
{
|
||||
die('Unable to run grocy: ' . $ex->getMessage());
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../app.php';
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user