From 16f9db371ea4f52de76e537c7a950a0171e47f63 Mon Sep 17 00:00:00 2001 From: Henry Whitaker Date: Fri, 10 Apr 2020 01:35:21 +0100 Subject: [PATCH] Added check for updates Uses the version number in config/speedtest.php hosted on github --- app/Helpers/UpdateHelper.php | 44 +++++++++++++++++++++-- app/Http/Controllers/UpdateController.php | 1 + 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/app/Helpers/UpdateHelper.php b/app/Helpers/UpdateHelper.php index 77aa0d98..6c20b6a1 100644 --- a/app/Helpers/UpdateHelper.php +++ b/app/Helpers/UpdateHelper.php @@ -7,7 +7,47 @@ use Exception; class UpdateHelper { public static function check() { - $current = config('app.version', false); - (!$current) ? false : ''; + $current = config('speedtest.version', false); + if($current === false) { + return false; + } + + $gitVersion = UpdateHelper::checkLatestVersion(); + if($gitVersion === false) { + return false; + } + + return (bool)(version_compare($current, $gitVersion['version'])); + } + + public static function checkLatestVersion() + { + $user = config('speedtest.user'); + $repo = config('speedtest.repo'); + $branch = config('speedtest.branch'); + + $url = 'https://raw.githubusercontent.com/'.$user + .'/' + .$repo + .'/' + .$branch + .'/config/speedtest.php'; + + try { + $gitFile = file_get_contents($url); + } catch(Exception $e) { + return false; + } + + $pattern = "/'version' => '([0-9]{1,}\.[0-9]{1,}\.[0-9]{1,})'/"; + $version = []; + preg_match($pattern, $gitFile, $version); + $version = $version[1]; + + return [ + 'repo' => $user . '/' . $repo, + 'branch' => $branch, + 'version' => $version, + ]; } } diff --git a/app/Http/Controllers/UpdateController.php b/app/Http/Controllers/UpdateController.php index 970692e6..c8b9ed89 100644 --- a/app/Http/Controllers/UpdateController.php +++ b/app/Http/Controllers/UpdateController.php @@ -10,6 +10,7 @@ class UpdateController extends Controller public function checkForUpdate() { return response()->json([ + 'method' => 'check for updates', 'update' => UpdateHelper::check(), ], 200); }