mirror of
https://github.com/cytopia/devilbox.git
synced 2025-01-31 00:23:51 +00:00
Merge branch 'master' into support-meilisearch
This commit is contained in:
commit
685e09f76b
@ -13,8 +13,8 @@ error_reporting(-1);
|
||||
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
|
||||
|
||||
|
||||
$DEVILBOX_VERSION = 'v2.3.0';
|
||||
$DEVILBOX_DATE = '2022-12-04';
|
||||
$DEVILBOX_VERSION = 'v2.4.0';
|
||||
$DEVILBOX_DATE = '2022-12-18';
|
||||
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
|
||||
|
||||
//
|
||||
|
@ -36,31 +36,32 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
//
|
||||
else if (isset($_GET['software'])) {
|
||||
$no = '<span class="text-danger">not installed</span>';
|
||||
$no_mod = '<span class="text-warning">PHP module not loaded</span>';
|
||||
$software = array();
|
||||
|
||||
if ($_GET['software'] == 'composer') {
|
||||
if ($_GET['software'] == 'angular_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getAngularCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'asgardcms_installer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getAsgardCmsInstallerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'codeception') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getCodeceptionVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'composer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getComposerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drupalc') {
|
||||
else if ($_GET['software'] == 'deployer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrupalConsoleVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush7') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion(7)) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush8') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion(8)) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush9') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion(9)) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDeployerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'git') {
|
||||
@ -68,9 +69,24 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGitVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel') {
|
||||
else if ($_GET['software'] == 'grunt_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelVersion()) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGruntCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'gulp') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGulpVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel_installer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelInstallerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel_lumen') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelLumenVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'mds') {
|
||||
@ -78,6 +94,11 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
$_GET['software'] => (($version = loadClass('Php')->getMdsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'mupdf_tools') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getMupdfToolsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'node') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getNodeVersion()) !== false) ? $version : $no
|
||||
@ -88,20 +109,51 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
$_GET['software'] => (($version = loadClass('Php')->getNpmVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'phalcon') {
|
||||
else if ($_GET['software'] == 'phalcon_devtools') {
|
||||
if (!extension_loaded('phalcon')) {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => $no_mod
|
||||
));
|
||||
} else {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhalconDevtoolsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
}
|
||||
else if ($_GET['software'] == 'phpunit') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhalconVersion()) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhpunitVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'symfony') {
|
||||
else if ($_GET['software'] == 'stylelint') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getSymfonyVersion()) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getStylelintVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'symfony_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getSymfonyCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'vue_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getVueCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'webpack_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getWebpackCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'wpcli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getWpcliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'yarn') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getYarnVersion()) !== false) ? $version : $no
|
||||
));
|
||||
} else {
|
||||
echo json_encode(array($_GET['software'] => 'unknown software'));
|
||||
}
|
||||
|
@ -334,10 +334,117 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12 col-margin">
|
||||
<div class="dash-box">
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> PHP Container Setup</div>
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> Available CLI Tools</div>
|
||||
<div class="dash-box-body">
|
||||
<p><small>You can also enter the php container via <code style="background-color:#3d3d3d;">./shell.sh</code> and use the following cli tools:</small></p>
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th colspan="2">Tools</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Angular Cli</th>
|
||||
<td id="app_angular_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>AsgardCMS Installer</th>
|
||||
<td id="app_asgardcms_installer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Codeception</th>
|
||||
<td id="app_codeception"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Composer</th>
|
||||
<td id="app_composer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Deployer</th>
|
||||
<td id="app_deployer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Git</th>
|
||||
<td id="app_git"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Grunt Cli</th>
|
||||
<td id="app_grunt_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Gulp</th>
|
||||
<td id="app_gulp"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Laravel Installer</th>
|
||||
<td id="app_laravel_installer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Laravel Lumen</th>
|
||||
<td id="app_laravel_lumen"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Mupdf Tools</th>
|
||||
<td id="app_mupdf_tools"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>mysqldump-secure</th>
|
||||
<td id="app_mds"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Node</th>
|
||||
<td id="app_node"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Npm</th>
|
||||
<td id="app_npm"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Phalcon Devtools</th>
|
||||
<td id="app_phalcon_devtools"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Phpunit</th>
|
||||
<td id="app_phpunit"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Stylelint</th>
|
||||
<td id="app_stylelint"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Symfony Cli</th>
|
||||
<td id="app_symfony_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Vue Cli</th>
|
||||
<td id="app_vue_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Webpack Cli</th>
|
||||
<td id="app_webpack_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Wordpress Cli</th>
|
||||
<td id="app_wpcli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Yarn</th>
|
||||
<td id="app_yarn"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12 offset-lg-4 offset-md-0 offset-sm-0 col-margin">
|
||||
<div class="dash-box">
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> PHP Container Status</div>
|
||||
<div class="dash-box-body">
|
||||
<p><small>You have made the following base configuration to the Devilbox:</small></p>
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<p><small>You can also enter the php container and work from inside. The following is available inside the container:</small></p>
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th colspan="2">Settings</th>
|
||||
@ -374,78 +481,7 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th colspan="2">Tools</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>composer</th>
|
||||
<td id="app_composer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drupal-console</th>
|
||||
<td id="app_drupalc"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drush7</th>
|
||||
<td id="app_drush7"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drush8</th>
|
||||
<td id="app_drush8"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drush9</th>
|
||||
<td id="app_drush9"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>git</th>
|
||||
<td id="app_git"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Laravel installer</th>
|
||||
<td id="app_laravel"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>mysqldump-secure</th>
|
||||
<td id="app_mds"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>node</th>
|
||||
<td id="app_node"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>npm</th>
|
||||
<td id="app_npm"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Phalcon devtools</th>
|
||||
<td id="app_phalcon"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Symfony installer</th>
|
||||
<td id="app_symfony"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Wordpress cli</th>
|
||||
<td id="app_wpcli"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12 offset-lg-4 offset-md-0 offset-sm-0 col-margin">
|
||||
<div class="dash-box">
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> PHP Container Status</div>
|
||||
<div class="dash-box-body">
|
||||
<p><small>The PHP Docker can connect to the following services via the specified hostnames and IP addresses.</small></p>
|
||||
<p><small>The PHP container can connect to the following services via the specified hostnames and IP addresses.</small></p>
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
@ -913,19 +949,28 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
|
||||
xhttp.open('GET', '_ajax_callback.php?software='+app, true);
|
||||
xhttp.send();
|
||||
}
|
||||
updateVersions('angular_cli');
|
||||
updateVersions('asgardcms_installer');
|
||||
updateVersions('codeception');
|
||||
updateVersions('composer');
|
||||
updateVersions('drupalc');
|
||||
updateVersions('drush7');
|
||||
updateVersions('drush8');
|
||||
updateVersions('drush9');
|
||||
updateVersions('deployer');
|
||||
updateVersions('git');
|
||||
updateVersions('laravel');
|
||||
updateVersions('grunt_cli');
|
||||
updateVersions('gulp');
|
||||
updateVersions('laravel_installer');
|
||||
updateVersions('laravel_lumen');
|
||||
updateVersions('mds');
|
||||
updateVersions('mupdf_tools');
|
||||
updateVersions('node');
|
||||
updateVersions('npm');
|
||||
updateVersions('phalcon');
|
||||
updateVersions('symfony');
|
||||
updateVersions('phalcon_devtools');
|
||||
updateVersions('phpunit');
|
||||
updateVersions('stylelint');
|
||||
updateVersions('symfony_cli');
|
||||
updateVersions('vue_cli');
|
||||
updateVersions('webpack_cli');
|
||||
updateVersions('wpcli');
|
||||
updateVersions('yarn');
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
@ -71,7 +71,8 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
public function __destruct()
|
||||
{
|
||||
if ($this->_link) {
|
||||
pg_close($this->_link);
|
||||
// DO NOT CLOSE. It is kind of shared.
|
||||
//pg_close($this->_link);
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,7 +149,7 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
// Get schemas for each database
|
||||
foreach ($databases as $name => &$database) {
|
||||
$PSQL = new Pgsql(
|
||||
$this->getIpAddress(),
|
||||
$GLOBALS['PGSQL_HOST_NAME'],
|
||||
array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
@ -179,7 +180,7 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
public function getSchemaSize($database, $schema)
|
||||
{
|
||||
$PSQL = new Pgsql(
|
||||
$this->getIpAddress(),
|
||||
$GLOBALS['PGSQL_HOST_NAME'],
|
||||
array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
@ -217,7 +218,7 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
public function getTableCount($database, $schema)
|
||||
{
|
||||
$PSQL = new Pgsql(
|
||||
$this->getIpAddress(),
|
||||
$GLOBALS['PGSQL_HOST_NAME'],
|
||||
array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
|
@ -35,9 +35,19 @@ class Php extends BaseClass implements BaseInterface
|
||||
$uid = loadClass('Helper')->egrep('/[0-9]+/', $uid);
|
||||
return $uid;
|
||||
}
|
||||
public function getGitVersion()
|
||||
public function getAngularCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('git --version 2>/dev/null', $output);
|
||||
$output = loadClass('Helper')->exec('ng version 2>/dev/null | grep -i "^Angular CLI" | head -1', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getAsgardCmsInstallerVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('asgardcms --version --no-ansi 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getCodeceptionVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('codecept --version --no-ansi 2>/dev/null | grep -i ^Codecept', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getComposerVersion()
|
||||
@ -45,15 +55,45 @@ class Php extends BaseClass implements BaseInterface
|
||||
$output = loadClass('Helper')->exec('composer --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getDrushVersion($version)
|
||||
public function getDeployerVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('drush'.$version.' --version 2>/dev/null', $output);
|
||||
$output = loadClass('Helper')->exec('dep --version --no-ansi 2>/dev/null | grep -i ^Deploy', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getDrupalConsoleVersion()
|
||||
public function getGitVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('drupal --version 2>/dev/null | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+[-rc0-9.]*/', $output);
|
||||
$output = loadClass('Helper')->exec('git --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getGruntCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('grunt --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getGulpVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('gulp --version --no-color 2>/dev/null | head -1', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getLaravelInstallerVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('laravel --version --no-ansi 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getLaravelLumenVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('lumen --version --no-ansi 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getMdsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('mysqldump-secure --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getMupdfToolsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('mutool -v 2>&1', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getNodeVersion()
|
||||
{
|
||||
@ -65,31 +105,56 @@ class Php extends BaseClass implements BaseInterface
|
||||
$output = loadClass('Helper')->exec('npm --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getLaravelVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('laravel --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getMdsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('mysqldump-secure --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getPhalconVersion()
|
||||
public function getPhalconDevtoolsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('phalcon --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getSymfonyVersion()
|
||||
public function getPhpunitVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('phpunit --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getStylelintVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('stylelint --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getSymfonyCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('symfony -V 2>/dev/null | tr -d "[:cntrl:]" | sed "s/\[[0-9]*m//g"', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getWpcliVersion()
|
||||
public function getVueCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('wp --version 2>/dev/null', $output);
|
||||
$output = loadClass('Helper')->exec('vue --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getWebpackCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('webpack-cli --version --no-stats --no-target --no-watch --no-color 2>/dev/null | grep webpack-cli', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getWpcliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('wp --version 2>/dev/null | grep -i ^WP', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getYarnVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('yarn --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
//public function getDrushVersion($version)
|
||||
//{
|
||||
// $output = loadClass('Helper')->exec('drush'.$version.' --version 2>/dev/null', $output);
|
||||
// return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
//}
|
||||
//public function getDrupalConsoleVersion()
|
||||
//{
|
||||
// $output = loadClass('Helper')->exec('drupal --version 2>/dev/null | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"', $output);
|
||||
// return loadClass('Helper')->egrep('/[0-9.]+[-rc0-9.]*/', $output);
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
12
.github/ISSUE_TEMPLATE/config.yml
vendored
12
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,12 +1,18 @@
|
||||
---
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Devilbox Discord Chat
|
||||
url: https://discord.gg/2wP3V6kBj4
|
||||
about: Please notify or discuss about any other requests here.
|
||||
|
||||
- name: Devilbox Discourse Forum
|
||||
url: https://devilbox.discourse.group/
|
||||
about: Please ask and answer general questions here.
|
||||
|
||||
- name: Devilbox Community Support
|
||||
url: https://devilbox.discourse.group/
|
||||
about: Please ask and answer questions here.
|
||||
- name: Devilbox Gitter Chat
|
||||
url: https://gitter.im/devilbox/Lobby
|
||||
about: Please ask and answer questions here.
|
||||
|
||||
- name: Devilbox documentation
|
||||
url: https://devilbox.readthedocs.io/
|
||||
about: Find the Devilbox documentation here.
|
||||
|
@ -13,7 +13,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
. "${SCRIPT_PATH}/../scripts/.lib.sh"
|
||||
|
||||
RETRIES=10
|
||||
DISABLED_VERSIONS=("5.3" "5.4" "5.5" "5.6" "8.0" "8.1" "8.2")
|
||||
DISABLED_VERSIONS=("5.3" "5.4" "5.5" "5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2")
|
||||
DISABLED_MYSQL_VERSIONS=("mysql-8.0" "percona-8.0")
|
||||
|
||||
|
||||
|
46
CHANGELOG.md
46
CHANGELOG.md
@ -6,6 +6,52 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release v2.4.0 (2022-12-18)
|
||||
|
||||
This release might be a bit bumpy due to a massive amount of changes in upstream projects. If you encounter issues, please do raise tickets.
|
||||
|
||||
### General
|
||||
|
||||
#### New PHP-FPM images
|
||||
This release uses a new set of PHP-FPM images. They have been heavily rewritten and modularized in order to make PHP extension and PHP tool generation more easy. See the following release notes for details:
|
||||
|
||||
> 499 changed files with 29,281 additions and 13,977 deletions.
|
||||
|
||||
* https://github.com/devilbox/docker-php-fpm/releases/tag/0.145
|
||||
* https://github.com/devilbox/docker-php-fpm/releases/tag/0.146
|
||||
* https://github.com/devilbox/docker-php-fpm/releases/tag/0.147
|
||||
|
||||
#### How to add modules/tools?
|
||||
* **[How to build PHP modules](https://github.com/devilbox/docker-php-fpm/blob/master/php_modules/README.md)**
|
||||
* **[How to install tools in PHP images](https://github.com/devilbox/docker-php-fpm/blob/master/php_tools/README.md)**
|
||||
|
||||
#### Available Tools
|
||||
You can now also find a detailed overview about what tools are installed in what PHP version image. See here: https://github.com/devilbox/docker-php-fpm/blob/master/doc/available-tools.md
|
||||
|
||||
#### Gitter -> Discord
|
||||
Additionally I am moving away from Gitter to **Discord**. See reason and announcement here: https://devilbox.discourse.group/t/migrating-from-gitter-to-discord/716/2
|
||||
|
||||
**🎮 Discord:** https://discord.gg/2wP3V6kBj4
|
||||
|
||||
### Fixed
|
||||
- Intranet: Fixed PostgreSQL database overview
|
||||
- Fixed PATH for all pre-installed composer and node tools
|
||||
|
||||
### Changed
|
||||
- Updated PHP versions (https://github.com/cytopia/devilbox/issues/940)
|
||||
- Updated MySQL versions
|
||||
- Intranet: Improved installed tools overview (index.php)
|
||||
- Intranet: Delayed message loading (https://github.com/cytopia/devilbox/pull/904)
|
||||
|
||||
### Added
|
||||
- Added tool `mhsendmail` for arm64 images
|
||||
- Added tool `wkhtmltopdf` for arm64 images (https://github.com/cytopia/devilbox/issues/936)
|
||||
- Added tool `taskfile` (https://github.com/cytopia/devilbox/issues/934)
|
||||
|
||||
### Removed
|
||||
- Removed tool `drush` (detail: https://github.com/cytopia/devilbox/issues/930#issuecomment-1344764908)
|
||||
|
||||
|
||||
## Release v2.3.0 (2022-12-04)
|
||||
|
||||
### Fixed
|
||||
|
21
README.md
21
README.md
@ -15,10 +15,9 @@
|
||||
**[License](#license)**
|
||||
|
||||
![Devilbox](docs/_includes/figures/devilbox/devilbox-intranet-dash-all.png)
|
||||
|
||||
[![Release](https://img.shields.io/github/release/cytopia/devilbox.svg?colorB=orange)](https://github.com/cytopia/devilbox/releases)
|
||||
[![Gitter](https://badges.gitter.im/devilbox/Lobby.svg)](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[![Discourse](https://img.shields.io/discourse/https/devilbox.discourse.group/status.svg?colorB=%234CB697)](https://devilbox.discourse.group)
|
||||
[![Discord](https://img.shields.io/discord/1051541389256704091?color=8c9eff&label=Discord&logo=discord)](https://discord.gg/2wP3V6kBj4)
|
||||
[![Discourse](https://img.shields.io/discourse/https/devilbox.discourse.group/status.svg?colorB=%234CB697&label=Discourse&logo=discourse)](https://devilbox.discourse.group)
|
||||
[![type](https://img.shields.io/badge/type-Docker-blue.svg)](https://www.docker.com/)
|
||||
[![License](https://img.shields.io/badge/license-MIT-%233DA639.svg)](https://opensource.org/licenses/MIT)
|
||||
|
||||
@ -115,15 +114,15 @@ works out of the box up to a shared development infrastructure for a corporate n
|
||||
In order to be aware about all that features, ensure to have skimmed over the
|
||||
**[documentation](https://devilbox.readthedocs.io)**, so you know what can be done and how that might
|
||||
simplify your every-day life. If you ever run into any unforseen issues, feel free to join the
|
||||
**[chat](https://gitter.im/devilbox/Lobby)** or visit the **[forums](https://devilbox.discourse.group)** and get community support quickly.
|
||||
**[Discord chat](https://discord.gg/2wP3V6kBj4)** or visit the **[forums](https://devilbox.discourse.group)** and get community support quickly.
|
||||
|
||||
<table width="100%" style="width:100%; display:table;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">Documentation</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://gitter.im/devilbox/Lobby">Chat</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.discourse.group">Forum</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://github.com/devilbox/flames">Flames</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">📘 Docs</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://discord.gg/2wP3V6kBj4">🎮 Discord</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.discourse.group">🗪 Forum</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://github.com/devilbox/flames">🔥 Flames</a></h3></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody style="vertical-align: middle; text-align: center;">
|
||||
@ -134,8 +133,8 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://gitter.im/devilbox/Lobby">
|
||||
<img title="Chat on Gitter" name="Chat on Gitter" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/gitter.png" />
|
||||
<a target="_blank" href="https://discord.gg/2wP3V6kBj4">
|
||||
<img title="Chat on Discord" name="Chat on Discord" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/discord.png" />
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
@ -151,7 +150,7 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://devilbox.readthedocs.io">devilbox.readthedocs.io</a></td>
|
||||
<td><a target="_blank" href="https://gitter.im/devilbox/Lobby">gitter.im/devilbox</a></td>
|
||||
<td><a target="_blank" href="https://discord.gg/2wP3V6kBj4">discord/devilbox</a></td>
|
||||
<td><a target="_blank" href="https://devilbox.discourse.group">devilbox.discourse.group</a></td>
|
||||
<td><a target="_blank" href="https://github.com/devilbox/flames">github.com/devilbox/flames</a></td>
|
||||
</tr>
|
||||
|
@ -99,7 +99,7 @@ services:
|
||||
# PHP
|
||||
# ------------------------------------------------------------
|
||||
php:
|
||||
image: devilbox/php-fpm:${PHP_SERVER}-work-0.144
|
||||
image: devilbox/php-fpm:${PHP_SERVER}-work-0.147
|
||||
hostname: php
|
||||
|
||||
##
|
||||
@ -329,7 +329,7 @@ services:
|
||||
# MySQL Database
|
||||
# ------------------------------------------------------------
|
||||
mysql:
|
||||
image: devilbox/mysql:${MYSQL_SERVER}-0.19
|
||||
image: devilbox/mysql:${MYSQL_SERVER}-0.21
|
||||
hostname: mysql
|
||||
|
||||
environment:
|
||||
|
Loading…
x
Reference in New Issue
Block a user