mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-02 07:47:32 +00:00
script can update seasearch index (#7395)
This commit is contained in:
parent
3a71b7d80b
commit
cc597b331c
122
scripts/pro.py
122
scripts/pro.py
@ -639,12 +639,59 @@ def do_setup(args):
|
||||
pro_config.config()
|
||||
pro_config.generate()
|
||||
|
||||
|
||||
def parse_bool(v):
|
||||
if isinstance(v, bool):
|
||||
return v
|
||||
|
||||
v = str(v).lower()
|
||||
|
||||
if v == '1' or v == 'true':
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def get_opt_from_conf_or_env(config, section, key, env_key=None, default=None):
|
||||
"""Get option value from events.conf. If not specified in events.conf, check the environment variable.
|
||||
"""
|
||||
try:
|
||||
return config.get(section, key)
|
||||
except configparser.Error:
|
||||
if env_key is None:
|
||||
return default
|
||||
else:
|
||||
return os.environ.get(env_key.upper(), default)
|
||||
|
||||
|
||||
def handle_search_commands(args):
|
||||
'''provide search related utility'''
|
||||
events_conf = os.path.join(env_mgr.central_config_dir, 'seafevents.conf')
|
||||
config = Utils.read_config(events_conf)
|
||||
|
||||
es_section_name = 'INDEX FILES'
|
||||
seasearch_section_name = 'SEASEARCH'
|
||||
key_enabled = 'enabled'
|
||||
|
||||
es_enabled = get_opt_from_conf_or_env(config, es_section_name, key_enabled, default=False)
|
||||
seaseach_enabled = get_opt_from_conf_or_env(config, seasearch_section_name, key_enabled, default=False)
|
||||
|
||||
es_enabled = parse_bool(es_enabled)
|
||||
seaseach_enabled = parse_bool(seaseach_enabled)
|
||||
|
||||
if es_enabled and seaseach_enabled:
|
||||
raise Exception('ES and seasearch cannot be configured simultaneously.')
|
||||
|
||||
if args.update:
|
||||
update_search_index()
|
||||
if seaseach_enabled:
|
||||
update_seasearch_index()
|
||||
elif es_enabled:
|
||||
update_search_index()
|
||||
elif args.clear:
|
||||
delete_search_index()
|
||||
if seaseach_enabled:
|
||||
delete_seasearch_index()
|
||||
elif es_enabled:
|
||||
delete_search_index()
|
||||
|
||||
def get_seafes_env():
|
||||
env = env_mgr.get_seahub_env()
|
||||
@ -723,6 +770,77 @@ def delete_wiki_search_index():
|
||||
|
||||
Utils.run_argv(argv, env=get_seafes_env())
|
||||
|
||||
|
||||
def update_seasearch_index():
|
||||
update_file_seasearch_index()
|
||||
update_wiki_seasearch_index()
|
||||
|
||||
|
||||
def update_file_seasearch_index():
|
||||
argv = [
|
||||
Utils.get_python_executable(),
|
||||
'-m', 'seafevents.seasearch.script.repo_filename_index_local',
|
||||
'--loglevel', 'debug',
|
||||
'update',
|
||||
]
|
||||
|
||||
Utils.info('\nUpdating seasearch filename index, this may take a while...\n')
|
||||
|
||||
Utils.run_argv(argv, env=get_seafes_env())
|
||||
|
||||
|
||||
def update_wiki_seasearch_index():
|
||||
argv = [
|
||||
Utils.get_python_executable(),
|
||||
'-m', 'seafevents.seasearch.script.wiki_index_local',
|
||||
'--loglevel', 'debug',
|
||||
'update',
|
||||
]
|
||||
|
||||
Utils.info('\nUpdating seasearch wiki index, this may take a while...\n')
|
||||
|
||||
Utils.run_argv(argv, env=get_seafes_env())
|
||||
|
||||
|
||||
def delete_seasearch_index():
|
||||
choice = None
|
||||
while choice not in ('y', 'n', ''):
|
||||
prompt = 'Delete seafile search index ([y]/n)? '
|
||||
choice = input(prompt).strip()
|
||||
|
||||
if choice == 'n':
|
||||
return
|
||||
|
||||
delete_file_seasearch_index()
|
||||
delete_wiki_seasearch_index()
|
||||
|
||||
|
||||
def delete_file_seasearch_index():
|
||||
argv = [
|
||||
Utils.get_python_executable(),
|
||||
'-m', 'seafevents.seasearch.script.repo_filename_index_local',
|
||||
'--loglevel', 'debug',
|
||||
'clear',
|
||||
]
|
||||
|
||||
Utils.info('\nDelete seasearch filename index, this may take a while...\n')
|
||||
|
||||
Utils.run_argv(argv, env=get_seafes_env())
|
||||
|
||||
|
||||
def delete_wiki_seasearch_index():
|
||||
argv = [
|
||||
Utils.get_python_executable(),
|
||||
'-m', 'seafevents.seasearch.script.wiki_index_local',
|
||||
'--loglevel', 'debug',
|
||||
'clear',
|
||||
]
|
||||
|
||||
Utils.info('\nDelete seasearch wiki index, this may take a while...\n')
|
||||
|
||||
Utils.run_argv(argv, env=get_seafes_env())
|
||||
|
||||
|
||||
def handle_ldap_sync_commands(args):
|
||||
if args.test:
|
||||
argv = [
|
||||
|
Loading…
Reference in New Issue
Block a user