json(['message' => ctrans('texts.self_update_not_available')], 403); } /* .git MUST be owned/writable by the webserver user */ $repo = new GitRepository(base_path()); nlog('Are there changes to pull? '.$repo->hasChanges()); $output = ''; try { $cacheCompiled = base_path('bootstrap/cache/compiled.php'); if (file_exists($cacheCompiled)) { unlink ($cacheCompiled); } $cacheServices = base_path('bootstrap/cache/services.php'); if (file_exists($cacheServices)) { unlink ($cacheServices); } Artisan::call('clear-compiled'); Artisan::call('cache:clear'); Artisan::call('debugbar:clear'); Artisan::call('route:clear'); Artisan::call('view:clear'); Artisan::call('config:clear'); $output = $repo->execute('stash'); $output = $repo->execute('reset hard origin/v5-stable'); $output = $repo->execute('pull origin'); } catch (GitException $e) { nlog($output); nlog($e->getMessage()); return response()->json(['message'=>$e->getMessage()], 500); } dispatch(function () { Artisan::call('ninja:post-update'); }); return response()->json(['message' => $output], 200); } public function checkVersion() { return trim(file_get_contents(config('ninja.version_url'))); } }