|
|
- <?php
-
- namespace App\Helpers;
-
- /**
- * Helper for install
- *
- * @author Björn Hase, Tentakelfabrik
- * @license http://opensource.org/licenses/MIT The MIT License
- * @link https://gitea.tentakelfabrik.de/Tentakelfabrik/mcp
- *
- */
- class InstallHelper
- {
- // message for status
- const PACKAGE_STATUS = 'Status: install ok installed';
-
- // not allowed message
- const NOT_ALLOWED = [
- 'WARNING: apt does not have a stable CLI interface. Use with caution in scripts.'
- ];
-
- /**
- * check if a packege is installed
- *
- * @param string $name
- * @return boolean
- */
- public function isReady($name)
- {
- $result = false;
-
- exec('echo $(dpkg -s '.$name.' 2>&1 | grep "'.self::PACKAGE_STATUS.'")', $output);
-
- if (isset($output[0]) && $output[0] === self::PACKAGE_STATUS) {
- $result = true;
- }
-
- return $result;
- }
-
- /**
- * apt add a Warning for no good,
- *
- *
- * @return array
- */
- public function filterAptMessages($output)
- {
- $results = [];
-
- foreach($output as $message) {
- if (!in_array($message, self::NOT_ALLOWED) && !empty($message)) {
- $results[] = $message;
- }
- }
-
- return $results;
- }
-
- /**
- *
- *
- * @return string
- */
- public function getDistributionId()
- {
- return $this->getSystemInfo('DISTRIB_ID');
- }
-
- /**
- *
- * @return string
- */
- public function getDistributionRelease()
- {
- return $this->getSystemInfo('DISTRIB_RELEASE');
- }
-
- /**
- *
- *
- * @return string
- */
- public function getDistributionCodename()
- {
- return $this->getSystemInfo('DISTRIB_CODENAME');
- }
-
- /**
- * getting information about system version
- *
- * @param string $key
- * @return string
- *
- */
- public function getSystemInfo($key)
- {
- exec('cat /etc/*release 2>&1', $output);
-
- $result = NULL;
-
- foreach($output as $row) {
- $line = explode('=', $row);
-
- if (isset($line[0]) && $line[0] === $key) {
- $result = $line[1];
- break;
- }
- }
-
- return $result;
- }
- }
|