From 5c04638cb4f66d7b94b88fd03d8c204fae911c0f Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sun, 30 Mar 2025 23:27:43 +0800 Subject: [PATCH] Full spell for SPC_DOWNLOAD --- src/SPC/builder/LibraryBase.php | 2 +- src/SPC/command/DownloadCommand.php | 2 +- src/SPC/command/dev/PackLibCommand.php | 2 +- src/SPC/store/Downloader.php | 30 +++++++++++------------ src/SPC/store/source/CustomSourceBase.php | 2 +- src/SPC/store/source/PhpSource.php | 2 +- src/SPC/store/source/PostgreSQLSource.php | 2 +- src/globals/defines.php | 6 ++--- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/SPC/builder/LibraryBase.php b/src/SPC/builder/LibraryBase.php index 5ac43508..2c75f4ca 100644 --- a/src/SPC/builder/LibraryBase.php +++ b/src/SPC/builder/LibraryBase.php @@ -47,7 +47,7 @@ abstract class LibraryBase $source = Config::getLib(static::NAME, 'source'); // if source is locked as pre-built, we just tryInstall it $pre_built_name = Downloader::getPreBuiltLockName($source); - if (isset($lock[$pre_built_name]) && ($lock[$pre_built_name]['lock_as'] ?? SPC_DOWN_SOURCE) === SPC_DOWN_PRE_BUILT) { + if (isset($lock[$pre_built_name]) && ($lock[$pre_built_name]['lock_as'] ?? SPC_DOWNLOAD_SOURCE) === SPC_DOWNLOAD_PRE_BUILT) { return $this->tryInstall($lock[$pre_built_name]['filename'], $force); } return $this->tryBuild($force); diff --git a/src/SPC/command/DownloadCommand.php b/src/SPC/command/DownloadCommand.php index 46b72f4f..b31db2d5 100644 --- a/src/SPC/command/DownloadCommand.php +++ b/src/SPC/command/DownloadCommand.php @@ -243,7 +243,7 @@ class DownloadCommand extends BaseCommand // find filename in asset list if (($url = $this->findPreBuilt($pre_built_libs, $find)) !== null) { logger()->info("[{$ni}/{$cnt}] Downloading pre-built content {$source}"); - Downloader::downloadSource($source, ['type' => 'url', 'url' => $url], $force_all || in_array($source, $force_list), SPC_DOWN_PRE_BUILT); + Downloader::downloadSource($source, ['type' => 'url', 'url' => $url], $force_all || in_array($source, $force_list), SPC_DOWNLOAD_PRE_BUILT); continue; } logger()->warning("Pre-built content not found for {$source}, fallback to source download"); diff --git a/src/SPC/command/dev/PackLibCommand.php b/src/SPC/command/dev/PackLibCommand.php index fd62f3f1..d7eb750a 100644 --- a/src/SPC/command/dev/PackLibCommand.php +++ b/src/SPC/command/dev/PackLibCommand.php @@ -49,7 +49,7 @@ class PackLibCommand extends BuildCommand // Get lock info $lock = json_decode(file_get_contents(DOWNLOAD_PATH . '/.lock.json'), true) ?? []; $source = Config::getLib($lib->getName(), 'source'); - if (!isset($lock[$source]) || ($lock[$source]['lock_as'] ?? SPC_DOWN_SOURCE) === SPC_DOWN_PRE_BUILT) { + if (!isset($lock[$source]) || ($lock[$source]['lock_as'] ?? SPC_DOWNLOAD_SOURCE) === SPC_DOWNLOAD_PRE_BUILT) { logger()->critical("The library {$lib->getName()} is downloaded as pre-built, we need to build it instead of installing pre-built."); return static::FAILURE; } diff --git a/src/SPC/store/Downloader.php b/src/SPC/store/Downloader.php index 8652a7bd..7a857c48 100644 --- a/src/SPC/store/Downloader.php +++ b/src/SPC/store/Downloader.php @@ -191,7 +191,7 @@ class Downloader * @throws RuntimeException * @throws WrongUsageException */ - public static function downloadFile(string $name, string $url, string $filename, ?string $move_path = null, int $download_as = SPC_DOWN_SOURCE): void + public static function downloadFile(string $name, string $url, string $filename, ?string $move_path = null, int $download_as = SPC_DOWNLOAD_SOURCE): void { logger()->debug("Downloading {$url}"); $cancel_func = function () use ($filename) { @@ -204,7 +204,7 @@ class Downloader self::curlDown(url: $url, path: FileSystem::convertPath(DOWNLOAD_PATH . "/{$filename}"), retry: self::getRetryTime()); self::unregisterCancelEvent(); logger()->debug("Locking {$filename}"); - if ($download_as === SPC_DOWN_PRE_BUILT) { + if ($download_as === SPC_DOWNLOAD_PRE_BUILT) { $name = self::getPreBuiltLockName($name); } self::lockSource($name, ['source_type' => 'archive', 'filename' => $filename, 'move_path' => $move_path, 'lock_as' => $download_as]); @@ -241,7 +241,7 @@ class Downloader * @throws RuntimeException * @throws WrongUsageException */ - public static function downloadGit(string $name, string $url, string $branch, ?string $move_path = null, int $retry = 0, int $lock_as = SPC_DOWN_SOURCE): void + public static function downloadGit(string $name, string $url, string $branch, ?string $move_path = null, int $retry = 0, int $lock_as = SPC_DOWNLOAD_SOURCE): void { $download_path = FileSystem::convertPath(DOWNLOAD_PATH . "/{$name}"); if (file_exists($download_path)) { @@ -329,7 +329,7 @@ class Downloader FileSystem::createDir(DOWNLOAD_PATH); } - if (self::isAlreadyDownloaded($name, $force, SPC_DOWN_PACKAGE)) { + if (self::isAlreadyDownloaded($name, $force, SPC_DOWNLOAD_PACKAGE)) { return; } @@ -337,28 +337,28 @@ class Downloader switch ($pkg['type']) { case 'bitbuckettag': // BitBucket Tag [$url, $filename] = self::getLatestBitbucketTag($name, $pkg); - self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWN_PACKAGE); + self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWNLOAD_PACKAGE); break; case 'ghtar': // GitHub Release (tar) [$url, $filename] = self::getLatestGithubTarball($name, $pkg); - self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWN_PACKAGE); + self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWNLOAD_PACKAGE); break; case 'ghtagtar': // GitHub Tag (tar) [$url, $filename] = self::getLatestGithubTarball($name, $pkg, 'tags'); - self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWN_PACKAGE); + self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWNLOAD_PACKAGE); break; case 'ghrel': // GitHub Release (uploaded) [$url, $filename] = self::getLatestGithubRelease($name, $pkg); - self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWN_PACKAGE); + self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWNLOAD_PACKAGE); break; case 'filelist': // Basic File List (regex based crawler) [$url, $filename] = self::getFromFileList($name, $pkg); - self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWN_PACKAGE); + self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWNLOAD_PACKAGE); break; case 'url': // Direct download URL $url = $pkg['url']; $filename = $pkg['filename'] ?? basename($pkg['url']); - self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWN_PACKAGE); + self::downloadFile($name, $url, $filename, $pkg['extract'] ?? null, SPC_DOWNLOAD_PACKAGE); break; case 'git': // Git repo self::downloadGit( @@ -367,7 +367,7 @@ class Downloader $pkg['rev'], $pkg['extract'] ?? null, self::getRetryTime(), - SPC_DOWN_PRE_BUILT + SPC_DOWNLOAD_PRE_BUILT ); break; case 'custom': // Custom download method, like API-based download or other @@ -419,7 +419,7 @@ class Downloader * @throws FileSystemException * @throws WrongUsageException */ - public static function downloadSource(string $name, ?array $source = null, bool $force = false, int $download_as = SPC_DOWN_SOURCE): void + public static function downloadSource(string $name, ?array $source = null, bool $force = false, int $download_as = SPC_DOWNLOAD_SOURCE): void { if ($source === null) { $source = Config::getSource($name); @@ -636,7 +636,7 @@ class Downloader /** * @throws FileSystemException */ - private static function isAlreadyDownloaded(string $name, bool $force, int $download_as = SPC_DOWN_SOURCE): bool + private static function isAlreadyDownloaded(string $name, bool $force, int $download_as = SPC_DOWNLOAD_SOURCE): bool { if (!file_exists(DOWNLOAD_PATH . '/.lock.json')) { $lock = []; @@ -644,7 +644,7 @@ class Downloader $lock = json_decode(FileSystem::readFile(DOWNLOAD_PATH . '/.lock.json'), true) ?? []; } // If lock file exists, skip downloading for source mode - if (!$force && $download_as === SPC_DOWN_SOURCE && isset($lock[$name])) { + if (!$force && $download_as === SPC_DOWNLOAD_SOURCE && isset($lock[$name])) { if ( $lock[$name]['source_type'] === 'archive' && file_exists(DOWNLOAD_PATH . '/' . $lock[$name]['filename']) || $lock[$name]['source_type'] === 'dir' && is_dir(DOWNLOAD_PATH . '/' . $lock[$name]['dirname']) @@ -655,7 +655,7 @@ class Downloader } // If lock file exists for current arch and glibc target, skip downloading - if (!$force && $download_as === SPC_DOWN_PRE_BUILT && isset($lock[$lock_name = self::getPreBuiltLockName($name)])) { + if (!$force && $download_as === SPC_DOWNLOAD_PRE_BUILT && isset($lock[$lock_name = self::getPreBuiltLockName($name)])) { // lock name with env if ( $lock[$lock_name]['source_type'] === 'archive' && file_exists(DOWNLOAD_PATH . '/' . $lock[$lock_name]['filename']) || diff --git a/src/SPC/store/source/CustomSourceBase.php b/src/SPC/store/source/CustomSourceBase.php index 243341ad..3fce1568 100644 --- a/src/SPC/store/source/CustomSourceBase.php +++ b/src/SPC/store/source/CustomSourceBase.php @@ -8,5 +8,5 @@ abstract class CustomSourceBase { public const NAME = 'unknown'; - abstract public function fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_DOWN_SOURCE): void; + abstract public function fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_DOWNLOAD_SOURCE): void; } diff --git a/src/SPC/store/source/PhpSource.php b/src/SPC/store/source/PhpSource.php index 405d6ca6..d2617e3b 100644 --- a/src/SPC/store/source/PhpSource.php +++ b/src/SPC/store/source/PhpSource.php @@ -17,7 +17,7 @@ class PhpSource extends CustomSourceBase * @throws DownloaderException * @throws FileSystemException */ - public function fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_DOWN_SOURCE): void + public function fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_DOWNLOAD_SOURCE): void { $major = defined('SPC_BUILD_PHP_VERSION') ? SPC_BUILD_PHP_VERSION : '8.3'; Downloader::downloadSource('php-src', self::getLatestPHPInfo($major), $force); diff --git a/src/SPC/store/source/PostgreSQLSource.php b/src/SPC/store/source/PostgreSQLSource.php index 6c025ef0..7c85a8d4 100644 --- a/src/SPC/store/source/PostgreSQLSource.php +++ b/src/SPC/store/source/PostgreSQLSource.php @@ -16,7 +16,7 @@ class PostgreSQLSource extends CustomSourceBase * @throws DownloaderException * @throws FileSystemException */ - public function fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_DOWN_SOURCE): void + public function fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_DOWNLOAD_SOURCE): void { Downloader::downloadSource('postgresql', self::getLatestInfo(), $force); } diff --git a/src/globals/defines.php b/src/globals/defines.php index f3d3187f..699cecc1 100644 --- a/src/globals/defines.php +++ b/src/globals/defines.php @@ -41,9 +41,9 @@ const SPC_EXTENSION_ALIAS = [ ]; // spc lock type -const SPC_DOWN_SOURCE = 1; // lock source -const SPC_DOWN_PRE_BUILT = 2; // lock pre-built -const SPC_DOWN_PACKAGE = 3; // lock as package +const SPC_DOWNLOAD_SOURCE = 1; // lock source +const SPC_DOWNLOAD_PRE_BUILT = 2; // lock pre-built +const SPC_DOWNLOAD_PACKAGE = 3; // lock as package // file replace strategy const REPLACE_FILE_STR = 1;