80 lines
2.0 KiB
PHP
80 lines
2.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace App\Helpers\Installer;
|
||
|
|
||
|
use Exception;
|
||
|
use Illuminate\Support\Facades\Artisan;
|
||
|
use Symfony\Component\Console\Output\BufferedOutput;
|
||
|
|
||
|
class FinalInstallManager
|
||
|
{
|
||
|
/**
|
||
|
* Run final commands.
|
||
|
*
|
||
|
* @return string
|
||
|
*/
|
||
|
public function runFinal()
|
||
|
{
|
||
|
$outputLog = new BufferedOutput;
|
||
|
|
||
|
$this->generateKey($outputLog);
|
||
|
$this->publishVendorAssets($outputLog);
|
||
|
|
||
|
return $outputLog->fetch();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generate New Application Key.
|
||
|
*
|
||
|
* @param \Symfony\Component\Console\Output\BufferedOutput $outputLog
|
||
|
* @return \Symfony\Component\Console\Output\BufferedOutput|array
|
||
|
*/
|
||
|
private static function generateKey(BufferedOutput $outputLog)
|
||
|
{
|
||
|
try {
|
||
|
if (config('installer.final.key')) {
|
||
|
Artisan::call('key:generate', ['--force'=> true], $outputLog);
|
||
|
}
|
||
|
} catch (Exception $e) {
|
||
|
return static::response($e->getMessage(), $outputLog);
|
||
|
}
|
||
|
|
||
|
return $outputLog;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Publish vendor assets.
|
||
|
*
|
||
|
* @param \Symfony\Component\Console\Output\BufferedOutput $outputLog
|
||
|
* @return \Symfony\Component\Console\Output\BufferedOutput|array
|
||
|
*/
|
||
|
private static function publishVendorAssets(BufferedOutput $outputLog)
|
||
|
{
|
||
|
try {
|
||
|
if (config('installer.final.publish')) {
|
||
|
Artisan::call('vendor:publish', ['--all' => true], $outputLog);
|
||
|
}
|
||
|
} catch (Exception $e) {
|
||
|
return static::response($e->getMessage(), $outputLog);
|
||
|
}
|
||
|
|
||
|
return $outputLog;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return a formatted error messages.
|
||
|
*
|
||
|
* @param $message
|
||
|
* @param \Symfony\Component\Console\Output\BufferedOutput $outputLog
|
||
|
* @return array
|
||
|
*/
|
||
|
private static function response($message, BufferedOutput $outputLog)
|
||
|
{
|
||
|
return [
|
||
|
'status' => 'error',
|
||
|
'message' => $message,
|
||
|
'dbOutputLog' => $outputLog->fetch(),
|
||
|
];
|
||
|
}
|
||
|
}
|