From 691a1dd0920279fc635e90b3a1c33e33d1b5b293 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Date: Mon, 23 Sep 2024 16:38:11 +0200 Subject: [PATCH 1/3] Setup platform-level internal plugins --- vendor/wp-now/src/wp-now.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vendor/wp-now/src/wp-now.ts b/vendor/wp-now/src/wp-now.ts index 53d692fc6..721b61108 100644 --- a/vendor/wp-now/src/wp-now.ts +++ b/vendor/wp-now/src/wp-now.ts @@ -8,7 +8,11 @@ import { rotatePHPRuntime, setPhpIniEntries, } from '@php-wasm/universal'; -import { wordPressRewriteRules, getFileNotFoundActionForWordPress } from '@wp-playground/wordpress'; +import { + wordPressRewriteRules, + getFileNotFoundActionForWordPress, + setupPlatformLevelMuPlugins, +} from '@wp-playground/wordpress'; import path from 'path'; import { SQLITE_FILENAME } from './constants'; import { rootCertificates } from 'tls'; @@ -109,6 +113,9 @@ export default async function startWPNow( await activatePluginOrTheme( php, options ); } + // Setup internal plugins needed for Playground + await setupPlatformLevelMuPlugins( php ); + rotatePHPRuntime( { php, cwd: requestHandler.documentRoot, From 2f7f649caa0c2864bc2c248e406f7054c201735f Mon Sep 17 00:00:00 2001 From: Carlos Garcia Date: Mon, 23 Sep 2024 16:38:45 +0200 Subject: [PATCH 2/3] Add internal plugin to override default umask --- vendor/wp-now/src/wp-now.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vendor/wp-now/src/wp-now.ts b/vendor/wp-now/src/wp-now.ts index 721b61108..570a01e57 100644 --- a/vendor/wp-now/src/wp-now.ts +++ b/vendor/wp-now/src/wp-now.ts @@ -115,6 +115,8 @@ export default async function startWPNow( // Setup internal plugins needed for Playground await setupPlatformLevelMuPlugins( php ); + // Add custom plugins needed for Studio sites + addDefaultUmaskPlugin( php, options.documentRoot ); rotatePHPRuntime( { php, @@ -570,3 +572,15 @@ export async function moveDatabasesInSitu( projectPath: string ) { fs.rmSync( wpContentPath, { recursive: true, force: true } ); } } + +function addDefaultUmaskPlugin( php: PHP, documentRoot: string ) { + php.writeFile( + '/internal/shared/mu-plugins/override-default-umask.php', + ` Date: Tue, 24 Sep 2024 11:00:14 +0200 Subject: [PATCH 3/3] Preprend PHP file to override `umask` value This approach replaces the one using a plugin. --- vendor/wp-now/src/wp-now.ts | 42 +++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/vendor/wp-now/src/wp-now.ts b/vendor/wp-now/src/wp-now.ts index 570a01e57..b3fc88d9f 100644 --- a/vendor/wp-now/src/wp-now.ts +++ b/vendor/wp-now/src/wp-now.ts @@ -6,13 +6,10 @@ import { PHPRequestHandler, proxyFileSystem, rotatePHPRuntime, + getPhpIniEntries, setPhpIniEntries, } from '@php-wasm/universal'; -import { - wordPressRewriteRules, - getFileNotFoundActionForWordPress, - setupPlatformLevelMuPlugins, -} from '@wp-playground/wordpress'; +import { wordPressRewriteRules, getFileNotFoundActionForWordPress } from '@wp-playground/wordpress'; import path from 'path'; import { SQLITE_FILENAME } from './constants'; import { rootCertificates } from 'tls'; @@ -70,6 +67,8 @@ export default async function startWPNow( const php = await requestHandler.getPrimaryPhp(); + await applyOverrideUmaskWorkaround( php ); + prepareDocumentRoot( php, options ); output?.log( `directory: ${ options.projectPath }` ); @@ -113,11 +112,6 @@ export default async function startWPNow( await activatePluginOrTheme( php, options ); } - // Setup internal plugins needed for Playground - await setupPlatformLevelMuPlugins( php ); - // Add custom plugins needed for Studio sites - addDefaultUmaskPlugin( php, options.documentRoot ); - rotatePHPRuntime( { php, cwd: requestHandler.documentRoot, @@ -573,14 +567,22 @@ export async function moveDatabasesInSitu( projectPath: string ) { } } -function addDefaultUmaskPlugin( php: PHP, documentRoot: string ) { - php.writeFile( - '/internal/shared/mu-plugins/override-default-umask.php', - `