$line) { foreach ($updates as $key => $value) { if (preg_match('/^\s*'.preg_quote($key, '/').'=/i', $line) === 1) { $lines[$index] = "{$key}={$value}"; $seen[$key] = true; break; } } } foreach ($updates as $key => $value) { if (! isset($seen[$key])) { $lines[] = "{$key}={$value}"; } } $content = implode(PHP_EOL, $lines).PHP_EOL; if (file_put_contents($path, $content) === false) { throw new RuntimeException("Unable to write {$path}."); } } $script = isset($_SERVER['SCRIPT_FILENAME']) ? realpath($_SERVER['SCRIPT_FILENAME']) : false; if ($script !== false && $script === realpath(__FILE__)) { $path = $argv[1] ?? dirname(__DIR__).'/.env'; docker_sync_env_file($path, docker_sync_env_keys()); fwrite(STDOUT, "Docker environment synchronized into .env.\n"); }