refactor lock file constant out

This commit is contained in:
DubbleClick 2025-06-19 09:50:38 +07:00
parent 4977286936
commit c2d6b9ad2c
5 changed files with 9 additions and 6 deletions

View File

@ -12,6 +12,7 @@ use SPC\exception\RuntimeException;
use SPC\exception\WrongUsageException; use SPC\exception\WrongUsageException;
use SPC\store\Config; use SPC\store\Config;
use SPC\store\Downloader; use SPC\store\Downloader;
use SPC\store\LockFile;
use SPC\util\DependencyUtil; use SPC\util\DependencyUtil;
use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputArgument;
@ -301,7 +302,7 @@ class DownloadCommand extends BaseCommand
throw new WrongUsageException('Windows currently does not support --from-zip !'); throw new WrongUsageException('Windows currently does not support --from-zip !');
} }
if (!file_exists(DOWNLOAD_PATH . '/.lock.json')) { if (!file_exists(LockFile::LOCK_FILE)) {
throw new RuntimeException('.lock.json not exist in "downloads/"'); throw new RuntimeException('.lock.json not exist in "downloads/"');
} }
} catch (RuntimeException $e) { } catch (RuntimeException $e) {

View File

@ -10,7 +10,7 @@ use SPC\exception\WrongUsageException;
class LockFile class LockFile
{ {
private const string LOCK_FILE = DOWNLOAD_PATH . '/.lock.json'; public const string LOCK_FILE = DOWNLOAD_PATH . '/.lock.json';
private static ?array $lock_file_content = null; private static ?array $lock_file_content = null;

View File

@ -6,6 +6,7 @@ namespace SPC\store\pkg;
use SPC\store\Downloader; use SPC\store\Downloader;
use SPC\store\FileSystem; use SPC\store\FileSystem;
use SPC\store\LockFile;
class GoModFrankenphp extends CustomPackage class GoModFrankenphp extends CustomPackage
{ {
@ -42,7 +43,7 @@ class GoModFrankenphp extends CustomPackage
public function extract(string $name): void public function extract(string $name): void
{ {
$pkgroot = PKG_ROOT_PATH; $pkgroot = PKG_ROOT_PATH;
$lock = json_decode(FileSystem::readFile(DOWNLOAD_PATH . '/.lock.json'), true); $lock = json_decode(FileSystem::readFile(LockFile::LOCK_FILE), true);
$source_type = $lock[$name]['source_type']; $source_type = $lock[$name]['source_type'];
$filename = DOWNLOAD_PATH . '/' . ($lock[$name]['filename'] ?? $lock[$name]['dirname']); $filename = DOWNLOAD_PATH . '/' . ($lock[$name]['filename'] ?? $lock[$name]['dirname']);
$extract = $lock[$name]['move_path'] === null ? "{$pkgroot}/{$name}" : $lock[$name]['move_path']; $extract = $lock[$name]['move_path'] === null ? "{$pkgroot}/{$name}" : $lock[$name]['move_path'];

View File

@ -13,6 +13,7 @@ use SPC\builder\LibraryBase;
use SPC\exception\RuntimeException; use SPC\exception\RuntimeException;
use SPC\exception\WrongUsageException; use SPC\exception\WrongUsageException;
use SPC\store\FileSystem; use SPC\store\FileSystem;
use SPC\store\LockFile;
use SPC\util\CustomExt; use SPC\util\CustomExt;
use SPC\util\DependencyUtil; use SPC\util\DependencyUtil;
use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\ArgvInput;
@ -117,7 +118,7 @@ class BuilderTest extends TestCase
public function testGetPHPVersionFromArchive() public function testGetPHPVersionFromArchive()
{ {
$lock = file_exists(DOWNLOAD_PATH . '/.lock.json') ? file_get_contents(DOWNLOAD_PATH . '/.lock.json') : false; $lock = file_exists(LockFile::LOCK_FILE) ? file_get_contents(LockFile::LOCK_FILE) : false;
if ($lock === false) { if ($lock === false) {
$this->assertFalse($this->builder->getPHPVersionFromArchive()); $this->assertFalse($this->builder->getPHPVersionFromArchive());
} else { } else {

View File

@ -59,8 +59,8 @@ class DownloaderTest extends TestCase
public function testLockSource() public function testLockSource()
{ {
LockFile::lockSource('fake-file', ['source_type' => SPC_SOURCE_ARCHIVE, 'filename' => 'fake-file-name', 'move_path' => 'fake-path', 'lock_as' => 'fake-lock-as']); LockFile::lockSource('fake-file', ['source_type' => SPC_SOURCE_ARCHIVE, 'filename' => 'fake-file-name', 'move_path' => 'fake-path', 'lock_as' => 'fake-lock-as']);
$this->assertFileExists(DOWNLOAD_PATH . '/.lock.json'); $this->assertFileExists(LockFile::LOCK_FILE);
$json = json_decode(file_get_contents(DOWNLOAD_PATH . '/.lock.json'), true); $json = json_decode(file_get_contents(LockFile::LOCK_FILE), true);
$this->assertIsArray($json); $this->assertIsArray($json);
$this->assertArrayHasKey('fake-file', $json); $this->assertArrayHasKey('fake-file', $json);
$this->assertArrayHasKey('source_type', $json['fake-file']); $this->assertArrayHasKey('source_type', $json['fake-file']);