Skip to content

Commit 2a5d1e0

Browse files
freekmurzeclaude
andcommitted
Simplify shutdown handler
Drop the two `WasSet` flags by treating `null` as the "wasn't set" sentinel (env values are always strings, so null is unambiguous). Replace the if/else for putenv with a ternary, and the if/else for $_ENV / $_SERVER restoration with `unset()` followed by guarded re-set. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 4c9076d commit 2a5d1e0

1 file changed

Lines changed: 10 additions & 18 deletions

File tree

bin/update-snapshots

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,22 @@
1414
// Capture whatever the env var was before this script ran, so we can restore it
1515
// on shutdown. Without this, code running after PHPUnit (shutdown handlers, parent
1616
// processes that include this file) would observe a state mutation they didn't ask
17-
// for.
17+
// for. Env values are always strings, so `null` unambiguously means "wasn't set".
1818
$originalGetenv = getenv('UPDATE_SNAPSHOTS');
19-
$originalEnv = array_key_exists('UPDATE_SNAPSHOTS', $_ENV) ? $_ENV['UPDATE_SNAPSHOTS'] : null;
20-
$originalServer = array_key_exists('UPDATE_SNAPSHOTS', $_SERVER) ? $_SERVER['UPDATE_SNAPSHOTS'] : null;
21-
$originalEnvWasSet = array_key_exists('UPDATE_SNAPSHOTS', $_ENV);
22-
$originalServerWasSet = array_key_exists('UPDATE_SNAPSHOTS', $_SERVER);
23-
24-
register_shutdown_function(static function () use ($originalGetenv, $originalEnv, $originalServer, $originalEnvWasSet, $originalServerWasSet): void {
25-
if ($originalGetenv === false) {
26-
putenv('UPDATE_SNAPSHOTS');
27-
} else {
28-
putenv('UPDATE_SNAPSHOTS='.$originalGetenv);
29-
}
19+
$originalEnv = $_ENV['UPDATE_SNAPSHOTS'] ?? null;
20+
$originalServer = $_SERVER['UPDATE_SNAPSHOTS'] ?? null;
21+
22+
register_shutdown_function(static function () use ($originalGetenv, $originalEnv, $originalServer): void {
23+
putenv($originalGetenv === false ? 'UPDATE_SNAPSHOTS' : 'UPDATE_SNAPSHOTS='.$originalGetenv);
24+
25+
unset($_ENV['UPDATE_SNAPSHOTS'], $_SERVER['UPDATE_SNAPSHOTS']);
3026

31-
if ($originalEnvWasSet) {
27+
if ($originalEnv !== null) {
3228
$_ENV['UPDATE_SNAPSHOTS'] = $originalEnv;
33-
} else {
34-
unset($_ENV['UPDATE_SNAPSHOTS']);
3529
}
3630

37-
if ($originalServerWasSet) {
31+
if ($originalServer !== null) {
3832
$_SERVER['UPDATE_SNAPSHOTS'] = $originalServer;
39-
} else {
40-
unset($_SERVER['UPDATE_SNAPSHOTS']);
4133
}
4234
});
4335

0 commit comments

Comments
 (0)