mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-11 13:24:07 +00:00
do not fail php script generation when curly braces are present
Fixes #3084.
This commit is contained in:
@@ -217,7 +217,7 @@ def setup_website(basedir: Path, config: Configuration, conn: Connection) -> Non
|
|||||||
basedir.mkdir()
|
basedir.mkdir()
|
||||||
|
|
||||||
assert config.project_dir is not None
|
assert config.project_dir is not None
|
||||||
template = dedent(f"""\
|
basedata = dedent(f"""\
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
@define('CONST_Debug', $_GET['debug'] ?? false);
|
@define('CONST_Debug', $_GET['debug'] ?? false);
|
||||||
@@ -230,17 +230,19 @@ def setup_website(basedir: Path, config: Configuration, conn: Connection) -> Non
|
|||||||
for php_name, conf_name, var_type in PHP_CONST_DEFS:
|
for php_name, conf_name, var_type in PHP_CONST_DEFS:
|
||||||
varout = _quote_php_variable(var_type, config, conf_name)
|
varout = _quote_php_variable(var_type, config, conf_name)
|
||||||
|
|
||||||
template += f"@define('CONST_{php_name}', {varout});\n"
|
basedata += f"@define('CONST_{php_name}', {varout});\n"
|
||||||
|
|
||||||
template += f"\nrequire_once('{config.lib_dir.php}/website/{{}}');\n"
|
template = "\nrequire_once(CONST_LibDir.'/website/{}');\n"
|
||||||
|
|
||||||
search_name_table_exists = bool(conn and conn.table_exists('search_name'))
|
search_name_table_exists = bool(conn and conn.table_exists('search_name'))
|
||||||
|
|
||||||
for script in WEBSITE_SCRIPTS:
|
for script in WEBSITE_SCRIPTS:
|
||||||
if not search_name_table_exists and script == 'search.php':
|
if not search_name_table_exists and script == 'search.php':
|
||||||
(basedir / script).write_text(template.format('reverse-only-search.php'), 'utf-8')
|
out = template.format('reverse-only-search.php')
|
||||||
else:
|
else:
|
||||||
(basedir / script).write_text(template.format(script), 'utf-8')
|
out = template.format(script)
|
||||||
|
|
||||||
|
(basedir / script).write_text(basedata + out, 'utf-8')
|
||||||
|
|
||||||
|
|
||||||
def invalidate_osm_object(osm_type: str, osm_id: int, conn: Connection,
|
def invalidate_osm_object(osm_type: str, osm_id: int, conn: Connection,
|
||||||
|
|||||||
@@ -95,3 +95,10 @@ def test_relative_log_file(project_env, monkeypatch, test_script, run_website_sc
|
|||||||
|
|
||||||
assert run_website_script() == 10
|
assert run_website_script() == 10
|
||||||
|
|
||||||
|
def test_variable_with_bracket(project_env, monkeypatch, test_script, run_website_script):
|
||||||
|
monkeypatch.setenv('NOMINATIM_DATABASE_DSN', 'pgsql:dbname=nominatim;user=foo;password=4{5')
|
||||||
|
|
||||||
|
test_script('exit(CONST_Database_DSN === "pgsql:dbname=nominatim;user=foo;password=4{5" ? 10 : 20);')
|
||||||
|
|
||||||
|
assert run_website_script() == 10
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user