Skip to content

Commit

Permalink
Use PhpExecutableFinder() closes #457 #458 (#460)
Browse files Browse the repository at this point in the history
  • Loading branch information
nabeelio authored Dec 9, 2019
1 parent 8042c4f commit 8cb0021
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 14 deletions.
13 changes: 9 additions & 4 deletions app/Http/Controllers/Admin/DashboardController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use App\Repositories\NewsRepository;
use App\Repositories\PirepRepository;
use App\Repositories\UserRepository;
use App\Services\CronService;
use App\Services\NewsService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
Expand All @@ -15,6 +16,7 @@

class DashboardController extends Controller
{
private $cronSvc;
private $kvpRepo;
private $newsRepo;
private $newsSvc;
Expand All @@ -24,19 +26,22 @@ class DashboardController extends Controller
/**
* DashboardController constructor.
*
* @param CronService $cronSvc
* @param KvpRepository $kvpRepo
* @param NewsRepository $newsRepo
* @param NewsService $newsSvc
* @param PirepRepository $pirepRepo
* @param UserRepository $userRepo
*/
public function __construct(
CronService $cronSvc,
KvpRepository $kvpRepo,
NewsRepository $newsRepo,
NewsService $newsSvc,
PirepRepository $pirepRepo,
UserRepository $userRepo
) {
$this->cronSvc = $cronSvc;
$this->kvpRepo = $kvpRepo;
$this->newsRepo = $newsRepo;
$this->newsSvc = $newsSvc;
Expand Down Expand Up @@ -79,10 +84,10 @@ public function index(Request $request)
$this->checkNewVersion();

return view('admin.dashboard.index', [
'news' => $this->newsRepo->getLatest(),
// 'installer_enabled' => $installerEnabled,
'pending_pireps' => $this->pirepRepo->getPendingCount(),
'pending_users' => $this->userRepo->getPendingCount(),
'news' => $this->newsRepo->getLatest(),
'pending_pireps' => $this->pirepRepo->getPendingCount(),
'pending_users' => $this->userRepo->getPendingCount(),
'cron_problem_exists' => $this->cronSvc->cronProblemExists(),
]);
}

Expand Down
9 changes: 1 addition & 8 deletions app/Http/Controllers/Admin/MaintenanceController.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,8 @@ public function __construct(CronService $cronSvc)

public function index()
{
// Generate the cron path. Replace php-fpm with just php
$cron_path = [
'* * * * *',
$this->cronSvc->getCronPath(),
'>> /dev/null 2>&1',
];

return view('admin.maintenance.index', [
'cron_path' => implode(' ', $cron_path),
'cron_path' => $this->cronSvc->getCronExecString(),
'cron_problem_exists' => $this->cronSvc->cronProblemExists(),
]);
}
Expand Down
2 changes: 1 addition & 1 deletion app/Providers/AppServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public function boot(): void
public function register(): void
{
// Only load the IDE helper if it's included and enabled
if (config('app.debug_toolbar') === true) {
if (config('app.debug') === true) {
/* @noinspection NestedPositiveIfStatementsInspection */
/* @noinspection PhpFullyQualifiedNameUsageInspection */
if (class_exists(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class)) {
Expand Down
20 changes: 19 additions & 1 deletion app/Services/CronService.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use DateTimeZone;
use Exception;
use Illuminate\Support\Facades\Log;
use Symfony\Component\Process\PhpExecutableFinder;

class CronService extends Service
{
Expand All @@ -26,16 +27,33 @@ public function __construct(
*/
public function getCronPath(): string
{
$finder = new PhpExecutableFinder();
$php_path = $finder->find(false);

$path = [
'cd '.base_path(),
'&&',
str_replace('-fpm', '', PHP_BINARY),
str_replace('-fpm', '', $php_path),
'artisan schedule:run',
];

return implode(' ', $path);
}

/**
* Show an example cron command that runs every minute
*
* @return string
*/
public function getCronExecString(): string
{
return implode(' ', [
'* * * * *',
$this->getCronPath(),
'>> /dev/null 2>&1',
]);
}

/**
* Update the last time the cron was run in the kvp repo
*/
Expand Down
6 changes: 6 additions & 0 deletions resources/views/admin/dashboard/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
@section('title', 'Dashboard')
@section('content')
<div class="content">
@if($cron_problem_exists)
<div class="alert alert-danger" role="alert">
There was a problem running the cron; make sure it's setup and check logs at
<span class="text-monospace bg-gradient-dark">storage/logs/cron.log</span>
</div>
@endif

<div class="row">
<div class="col-md-7">
Expand Down

0 comments on commit 8cb0021

Please sign in to comment.