mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-08 17:35:36 +08:00
Remove patch point
This commit is contained in:
@@ -26,7 +26,6 @@ use StaticPHP\Util\InteractiveTerm;
|
|||||||
use StaticPHP\Util\SourcePatcher;
|
use StaticPHP\Util\SourcePatcher;
|
||||||
use StaticPHP\Util\SPCConfigUtil;
|
use StaticPHP\Util\SPCConfigUtil;
|
||||||
use StaticPHP\Util\System\UnixUtil;
|
use StaticPHP\Util\System\UnixUtil;
|
||||||
use StaticPHP\Util\V2CompatLayer;
|
|
||||||
use ZM\Logger\ConsoleColor;
|
use ZM\Logger\ConsoleColor;
|
||||||
|
|
||||||
trait unix
|
trait unix
|
||||||
@@ -62,7 +61,6 @@ trait unix
|
|||||||
public function buildconfForUnix(TargetPackage $package): void
|
public function buildconfForUnix(TargetPackage $package): void
|
||||||
{
|
{
|
||||||
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./buildconf'));
|
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./buildconf'));
|
||||||
V2CompatLayer::emitPatchPoint('before-php-buildconf');
|
|
||||||
shell()->cd($package->getSourceDir())->exec(getenv('SPC_CMD_PREFIX_PHP_BUILDCONF'));
|
shell()->cd($package->getSourceDir())->exec(getenv('SPC_CMD_PREFIX_PHP_BUILDCONF'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +68,6 @@ trait unix
|
|||||||
public function configureForUnix(TargetPackage $package, PackageInstaller $installer): void
|
public function configureForUnix(TargetPackage $package, PackageInstaller $installer): void
|
||||||
{
|
{
|
||||||
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./configure'));
|
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./configure'));
|
||||||
V2CompatLayer::emitPatchPoint('before-php-configure');
|
|
||||||
$cmd = getenv('SPC_CMD_PREFIX_PHP_CONFIGURE');
|
$cmd = getenv('SPC_CMD_PREFIX_PHP_CONFIGURE');
|
||||||
|
|
||||||
$args = [];
|
$args = [];
|
||||||
@@ -183,8 +180,6 @@ trait unix
|
|||||||
#[Stage]
|
#[Stage]
|
||||||
public function makeForUnix(TargetPackage $package, PackageInstaller $installer): void
|
public function makeForUnix(TargetPackage $package, PackageInstaller $installer): void
|
||||||
{
|
{
|
||||||
V2CompatLayer::emitPatchPoint('before-php-make');
|
|
||||||
|
|
||||||
logger()->info('cleaning up php-src build files');
|
logger()->info('cleaning up php-src build files');
|
||||||
shell()->cd($package->getSourceDir())->exec('make clean');
|
shell()->cd($package->getSourceDir())->exec('make clean');
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ use StaticPHP\Util\FileSystem;
|
|||||||
use StaticPHP\Util\InteractiveTerm;
|
use StaticPHP\Util\InteractiveTerm;
|
||||||
use StaticPHP\Util\SourcePatcher;
|
use StaticPHP\Util\SourcePatcher;
|
||||||
use StaticPHP\Util\System\WindowsUtil;
|
use StaticPHP\Util\System\WindowsUtil;
|
||||||
use StaticPHP\Util\V2CompatLayer;
|
|
||||||
use ZM\Logger\ConsoleColor;
|
use ZM\Logger\ConsoleColor;
|
||||||
|
|
||||||
trait windows
|
trait windows
|
||||||
@@ -38,7 +37,6 @@ trait windows
|
|||||||
public function buildconfForWindows(TargetPackage $package, PackageInstaller $installer): void
|
public function buildconfForWindows(TargetPackage $package, PackageInstaller $installer): void
|
||||||
{
|
{
|
||||||
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./buildconf.bat'));
|
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./buildconf.bat'));
|
||||||
V2CompatLayer::emitPatchPoint('before-php-buildconf');
|
|
||||||
cmd()->cd($package->getSourceDir())->exec('.\buildconf.bat');
|
cmd()->cd($package->getSourceDir())->exec('.\buildconf.bat');
|
||||||
|
|
||||||
if ($package->getBuildOption('enable-micro-win32') && $installer->isPackageResolved('php-micro')) {
|
if ($package->getBuildOption('enable-micro-win32') && $installer->isPackageResolved('php-micro')) {
|
||||||
@@ -52,7 +50,6 @@ trait windows
|
|||||||
public function configureForWindows(TargetPackage $package, PackageInstaller $installer): void
|
public function configureForWindows(TargetPackage $package, PackageInstaller $installer): void
|
||||||
{
|
{
|
||||||
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./configure.bat'));
|
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('./configure.bat'));
|
||||||
V2CompatLayer::emitPatchPoint('before-php-configure');
|
|
||||||
$args = [
|
$args = [
|
||||||
'--disable-all',
|
'--disable-all',
|
||||||
"--with-php-build={$package->getBuildRootPath()}",
|
"--with-php-build={$package->getBuildRootPath()}",
|
||||||
@@ -232,7 +229,6 @@ trait windows
|
|||||||
#[Stage]
|
#[Stage]
|
||||||
public function makeForWindows(TargetPackage $package, PackageInstaller $installer): void
|
public function makeForWindows(TargetPackage $package, PackageInstaller $installer): void
|
||||||
{
|
{
|
||||||
V2CompatLayer::emitPatchPoint('before-php-make');
|
|
||||||
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('nmake clean'));
|
InteractiveTerm::setMessage('Building php: ' . ConsoleColor::yellow('nmake clean'));
|
||||||
cmd()->cd($package->getSourceDir())->exec('nmake clean');
|
cmd()->cd($package->getSourceDir())->exec('nmake clean');
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ class PackageInstaller
|
|||||||
ApplicationContext::set(PackageInstaller::class, $this);
|
ApplicationContext::set(PackageInstaller::class, $this);
|
||||||
$builder = new PackageBuilder($options);
|
$builder = new PackageBuilder($options);
|
||||||
ApplicationContext::set(PackageBuilder::class, $builder);
|
ApplicationContext::set(PackageBuilder::class, $builder);
|
||||||
ApplicationContext::set('patch_point', '');
|
|
||||||
|
|
||||||
// Check for no-download option
|
// Check for no-download option
|
||||||
if (!empty($options['no-download'])) {
|
if (!empty($options['no-download'])) {
|
||||||
|
|||||||
@@ -5,11 +5,6 @@ declare(strict_types=1);
|
|||||||
namespace StaticPHP\Util;
|
namespace StaticPHP\Util;
|
||||||
|
|
||||||
use StaticPHP\Artifact\Artifact;
|
use StaticPHP\Artifact\Artifact;
|
||||||
use StaticPHP\DI\ApplicationContext;
|
|
||||||
use StaticPHP\Exception\InterruptException;
|
|
||||||
use StaticPHP\Exception\WrongUsageException;
|
|
||||||
use StaticPHP\Package\PackageBuilder;
|
|
||||||
use StaticPHP\Package\PackageInstaller;
|
|
||||||
use StaticPHP\Package\TargetPackage;
|
use StaticPHP\Package\TargetPackage;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
@@ -70,71 +65,15 @@ class V2CompatLayer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function beforeExtractHook(Artifact $artifact): void
|
public static function beforeExtractHook(Artifact $artifact): void {}
|
||||||
{
|
|
||||||
self::emitPatchPoint(match ($artifact->getName()) {
|
|
||||||
'php-src' => 'before-php-extract',
|
|
||||||
'micro' => 'before-micro-extract',
|
|
||||||
default => '',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function afterExtractHook(Artifact $artifact): void
|
public static function afterExtractHook(Artifact $artifact): void {}
|
||||||
{
|
|
||||||
self::emitPatchPoint(match ($artifact->getName()) {
|
|
||||||
'php-src' => 'after-php-extract',
|
|
||||||
'micro' => 'after-micro-extract',
|
|
||||||
default => '',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function beforeExtsExtractHook(): void
|
public static function beforeExtsExtractHook(): void {}
|
||||||
{
|
|
||||||
self::emitPatchPoint('before-exts-extract');
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function afterExtsExtractHook(): void
|
public static function afterExtsExtractHook(): void {}
|
||||||
{
|
|
||||||
self::emitPatchPoint('after-exts-extract');
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function beforeLibExtractHook(string $pkg): void
|
public static function beforeLibExtractHook(string $pkg): void {}
|
||||||
{
|
|
||||||
self::emitPatchPoint("before-library[{$pkg}]-extract");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function afterLibExtractHook(string $pkg): void
|
public static function afterLibExtractHook(string $pkg): void {}
|
||||||
{
|
|
||||||
self::emitPatchPoint("after-library[{$pkg}]-extract");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function emitPatchPoint(string $point_name): void
|
|
||||||
{
|
|
||||||
if ($point_name === '') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!ApplicationContext::has(PackageInstaller::class)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$builder = ApplicationContext::get(PackageBuilder::class);
|
|
||||||
$patch_points = $builder->getOption('with-added-patch', []);
|
|
||||||
ApplicationContext::set('patch_point', $point_name);
|
|
||||||
foreach ($patch_points as $patch_point) {
|
|
||||||
if (!file_exists($patch_point)) {
|
|
||||||
throw new WrongUsageException("Additional patch script {$patch_point} does not exist!");
|
|
||||||
}
|
|
||||||
logger()->debug("Applying additional patch script {$patch_point}");
|
|
||||||
|
|
||||||
try {
|
|
||||||
require $patch_point;
|
|
||||||
} catch (InterruptException $e) {
|
|
||||||
if ($e->getCode() === 0) {
|
|
||||||
logger()->notice('Patch script ' . $patch_point . ' interrupted' . ($e->getMessage() ? (': ' . $e->getMessage()) : '.'));
|
|
||||||
} else {
|
|
||||||
logger()->error('Patch script ' . $patch_point . ' interrupted with error code [' . $e->getCode() . ']' . ($e->getMessage() ? (': ' . $e->getMessage()) : '.'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ApplicationContext::set('patch_point', '');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
use StaticPHP\Exception\ExecutionException;
|
use StaticPHP\Exception\ExecutionException;
|
||||||
use StaticPHP\Exception\InterruptException;
|
|
||||||
use StaticPHP\Exception\WrongUsageException;
|
use StaticPHP\Exception\WrongUsageException;
|
||||||
use StaticPHP\Runtime\Shell\DefaultShell;
|
use StaticPHP\Runtime\Shell\DefaultShell;
|
||||||
use StaticPHP\Runtime\Shell\UnixShell;
|
use StaticPHP\Runtime\Shell\UnixShell;
|
||||||
@@ -120,18 +119,6 @@ function cmd(?bool $debug = null): WindowsCmd
|
|||||||
return new WindowsCmd($debug);
|
return new WindowsCmd($debug);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get current patch point.
|
|
||||||
*/
|
|
||||||
function patch_point(): string
|
|
||||||
{
|
|
||||||
if (StaticPHP\DI\ApplicationContext::has('patch_point')) {
|
|
||||||
/* @phpstan-ignore-next-line */
|
|
||||||
return StaticPHP\DI\ApplicationContext::get('patch_point');
|
|
||||||
}
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add log filter value(s) to prevent secret leak
|
// Add log filter value(s) to prevent secret leak
|
||||||
function spc_add_log_filter(array|string $filter): void
|
function spc_add_log_filter(array|string $filter): void
|
||||||
{
|
{
|
||||||
@@ -158,11 +145,6 @@ function spc_write_log(mixed $stream, string $data): false|int
|
|||||||
return fwrite($stream, $data);
|
return fwrite($stream, $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function patch_point_interrupt(int $retcode, string $msg = ''): InterruptException
|
|
||||||
{
|
|
||||||
return new InterruptException(message: $msg, code: $retcode);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------- function f_* part -------
|
// ------- function f_* part -------
|
||||||
// f_ means standard function wrapper
|
// f_ means standard function wrapper
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user