LOG = logging.getLogger()
-def update_postcodes(dsn, sql_dir):
- """ Recalculate postcode centroids and add, remove and update entries in the
- location_postcode table. `conn` is an opne connection to the database.
- """
- execute_file(dsn, sql_dir / 'update-postcodes.sql')
-
def recompute_word_counts(dsn, sql_dir):
""" Compute the frequency of full-word search terms.
conn.commit()
-def setup_website(basedir, config):
+def _quote_php_variable(var_type, config, conf_name):
+ if var_type == bool:
+ return 'true' if config.get_bool(conf_name) else 'false'
+
+ if var_type == int:
+ return getattr(config, conf_name)
+
+ if not getattr(config, conf_name):
+ return 'false'
+
+ quoted = getattr(config, conf_name).replace("'", "\\'")
+ return f"'{quoted}'"
+
+
+def setup_website(basedir, config, conn):
""" Create the website script stubs.
"""
if not basedir.exists():
config.project_dir / 'tokenizer'))
for php_name, conf_name, var_type in PHP_CONST_DEFS:
- if var_type == bool:
- varout = 'true' if config.get_bool(conf_name) else 'false'
- elif var_type == int:
- varout = getattr(config, conf_name)
- elif not getattr(config, conf_name):
- varout = 'false'
- else:
- varout = "'{}'".format(getattr(config, conf_name).replace("'", "\\'"))
+ varout = _quote_php_variable(var_type, config, conf_name)
- template += "@define('CONST_{}', {});\n".format(php_name, varout)
+ template += f"@define('CONST_{php_name}', {varout});\n"
- template += "\nrequire_once('{}/website/{{}}');\n".format(config.lib_dir.php)
+ template += f"\nrequire_once('{config.lib_dir.php}/website/{{}}');\n"
+
+ search_name_table_exists = bool(conn and conn.table_exists('search_name'))
for script in WEBSITE_SCRIPTS:
- (basedir / script).write_text(template.format(script), 'utf-8')
+ if not search_name_table_exists and script == 'search.php':
+ (basedir / script).write_text(template.format('reverse-only-search.php'), 'utf-8')
+ else:
+ (basedir / script).write_text(template.format(script), 'utf-8')