diff --git a/config/services.php b/config/services.php index 091aafe..b539f9f 100644 --- a/config/services.php +++ b/config/services.php @@ -15,7 +15,7 @@ return [ */ 'github' => [ - 'latest_release_url' => 'https://api.github.com/repos/pandy06269/blue-twilight/releases/latest' + 'latest_release_url' => 'https://api.github.com/repos/andysh-uk/blue-twilight/releases/latest' ], 'recaptcha' => [ diff --git a/public/update.php b/public/update.php index 95d96f2..a09cce6 100644 --- a/public/update.php +++ b/public/update.php @@ -65,6 +65,8 @@ php artisan clear-compiled echoError('allow_url_fopen is disabled so we cannot use Composer'); + echo '
'; + $this->echoError('You will need to install the vendor libraries manually - see this page for more details'); + return false; + } + + $signatureUrl = 'https://composer.github.io/installer.sig'; + $this->composerSignature = trim(file_get_contents($signatureUrl)); + if (strlen($this->composerSignature) == 0) + { + $this->echoError(sprintf("Failed downloading the Composer signature from %s", $signatureUrl)); + return false; + } + else + { + $this->echoOK($this->composerSignature); + } + + return true; + } + private function removeCompiledCached() { ob_start(); @@ -155,6 +182,55 @@ php artisan clear-compiled echo '' . PHP_EOL; } + private function installComposer() + { + $rc = -1; + + ob_start(); + system('php -r "copy(\'https://getcomposer.org/installer\', \'composer-setup.php\');"', $rc); + $result = ob_get_clean(); + echo nl2br($result); + + if ($rc != 0) + { + $this->echoError('Failed to fetch Composer'); + return false; + } + + ob_start(); + system(sprintf('php -r "if (hash_file(\'SHA384\', \'composer-setup.php\') === \'%s\') { echo \'Installer verified\'; } else { echo \'Installer corrupt\'; unlink(\'composer-setup.php\'); } echo PHP_EOL;"', $this->composerSignature), $rc); + $result = ob_get_clean(); + echo nl2br($result); + if ($rc != 0) + { + $this->echoError('Composer verification failed'); + return false; + } + + ob_start(); + system('php composer-setup.php', $rc); + $result = ob_get_clean(); + echo nl2br($result); + if ($rc != 0) + { + $this->echoError('Failed to install Composer'); + return false; + } + + ob_start(); + system('php -r "unlink(\'composer-setup.php\');"', $rc); + $result = ob_get_clean(); + echo nl2br($result); + if ($rc != 0) + { + $this->echoError('Failed to remove Composer setup file'); + return false; + } + + $this->echoOK(); + return true; + } + private function runComposer() { ob_start();