enhancement for download command

This commit is contained in:
crazywhalecc
2024-03-10 10:58:58 +08:00
committed by Jerry Ma
parent 71017361b5
commit e23daaa355
5 changed files with 65 additions and 38 deletions

View File

@@ -246,6 +246,10 @@ class Downloader
}*/
}
/**
* @throws DownloaderException
* @throws FileSystemException
*/
public static function downloadPackage(string $name, ?array $pkg = null, bool $force = false): void
{
if ($pkg === null) {
@@ -313,7 +317,7 @@ class Downloader
$classes = FileSystem::getClassesPsr4(ROOT_DIR . '/src/SPC/store/source', 'SPC\\store\\source');
foreach ($classes as $class) {
if (is_a($class, CustomSourceBase::class, true) && $class::NAME === $name) {
(new $class())->fetch();
(new $class())->fetch($force);
break;
}
}
@@ -407,7 +411,7 @@ class Downloader
$classes = FileSystem::getClassesPsr4(ROOT_DIR . '/src/SPC/store/source', 'SPC\\store\\source');
foreach ($classes as $class) {
if (is_a($class, CustomSourceBase::class, true) && $class::NAME === $name) {
(new $class())->fetch();
(new $class())->fetch($force);
break;
}
}

View File

@@ -8,5 +8,5 @@ abstract class CustomSourceBase
{
public const NAME = 'unknown';
abstract public function fetch();
abstract public function fetch(bool $force = false);
}

View File

@@ -7,7 +7,6 @@ namespace SPC\store\source;
use JetBrains\PhpStorm\ArrayShape;
use SPC\exception\DownloaderException;
use SPC\exception\FileSystemException;
use SPC\exception\RuntimeException;
use SPC\store\Downloader;
class PhpSource extends CustomSourceBase
@@ -16,13 +15,12 @@ class PhpSource extends CustomSourceBase
/**
* @throws DownloaderException
* @throws RuntimeException
* @throws FileSystemException
*/
public function fetch(): void
public function fetch(bool $force = false): void
{
$major = defined('SPC_BUILD_PHP_VERSION') ? SPC_BUILD_PHP_VERSION : '8.1';
Downloader::downloadSource('php-src', self::getLatestPHPInfo($major));
Downloader::downloadSource('php-src', self::getLatestPHPInfo($major), $force);
}
/**

View File

@@ -6,7 +6,6 @@ namespace SPC\store\source;
use SPC\exception\DownloaderException;
use SPC\exception\FileSystemException;
use SPC\exception\RuntimeException;
use SPC\store\Downloader;
class PostgreSQLSource extends CustomSourceBase
@@ -15,12 +14,11 @@ class PostgreSQLSource extends CustomSourceBase
/**
* @throws DownloaderException
* @throws RuntimeException
* @throws FileSystemException
*/
public function fetch(): void
public function fetch(bool $force = false): void
{
Downloader::downloadSource('postgresql', self::getLatestInfo());
Downloader::downloadSource('postgresql', self::getLatestInfo(), $force);
}
/**