Browse Source

[fix] resolve minor review issues

Adam Tauber 4 years ago
parent
commit
dff879d07d
2 changed files with 25 additions and 23 deletions
  1. 3 0
      searx/__init__.py
  2. 22 23
      searx/plugins/__init__.py

+ 3 - 0
searx/__init__.py

@@ -56,6 +56,9 @@ if not settings_path:
 with open(settings_path, 'r', encoding='utf-8') as settings_yaml:
 with open(settings_path, 'r', encoding='utf-8') as settings_yaml:
     settings = safe_load(settings_yaml)
     settings = safe_load(settings_yaml)
 
 
+if settings['ui']['static_path']:
+    static_path = settings['ui']['static_path']
+
 '''
 '''
 enable debug if
 enable debug if
 the environnement variable SEARX_DEBUG is 1 or true
 the environnement variable SEARX_DEBUG is 1 or true

+ 22 - 23
searx/plugins/__init__.py

@@ -17,7 +17,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
 
 
 from hashlib import sha256
 from hashlib import sha256
 from importlib import import_module
 from importlib import import_module
-from os import listdir, mkdir, remove
+from os import makedirs, remove
 from os.path import abspath, basename, dirname, exists, isdir, join
 from os.path import abspath, basename, dirname, exists, isdir, join
 from shutil import copyfile
 from shutil import copyfile
 from sys import exit, version_info
 from sys import exit, version_info
@@ -99,50 +99,49 @@ def load_external_plugins(plugin_names):
 
 
         pkg.__base_path = dirname(abspath(pkg.__file__))
         pkg.__base_path = dirname(abspath(pkg.__file__))
 
 
-        fix_package_resources(pkg, name)
+        prepare_package_resources(pkg, name)
 
 
         plugins.append(pkg)
         plugins.append(pkg)
         logger.debug('plugin "{0}" loaded'.format(name))
         logger.debug('plugin "{0}" loaded'.format(name))
     return plugins
     return plugins
 
 
 
 
-def check_resource(base_path, resource_path, name, target_dir, plugin_dir):
-        dep_path = join(base_path, resource_path)
-        file_name = basename(dep_path)
-        resource_path = join(target_dir, file_name)
-        if not exists(resource_path) or sha_sum(dep_path) != sha_sum(resource_path):
-            try:
-                copyfile(dep_path, resource_path)
-            except:
-                logger.critical('failed to copy plugin resource {0} for plugin {1}'.format(file_name, name))
-                exit(3)
+def sync_resource(base_path, resource_path, name, target_dir, plugin_dir):
+    dep_path = join(base_path, resource_path)
+    file_name = basename(dep_path)
+    resource_path = join(target_dir, file_name)
+    if not exists(resource_path) or sha_sum(dep_path) != sha_sum(resource_path):
+        try:
+            copyfile(dep_path, resource_path)
+        except:
+            logger.critical('failed to copy plugin resource {0} for plugin {1}'.format(file_name, name))
+            exit(3)
 
 
-        # returning with the web path of the resource
-        return join('plugins', plugin_dir, file_name)
+    # returning with the web path of the resource
+    return join('plugins', plugin_dir, file_name)
 
 
 
 
-def fix_package_resources(pkg, name):
+def prepare_package_resources(pkg, name):
     plugin_dir = 'plugin_' + name
     plugin_dir = 'plugin_' + name
     target_dir = join(static_path, 'plugins', plugin_dir)
     target_dir = join(static_path, 'plugins', plugin_dir)
-    if not isdir(target_dir):
-        try:
-            mkdir(target_dir)
-        except:
-            logger.critical('failed to create resource directory {0} for plugin {1}'.format(target_dir, name))
-            exit(3)
+    try:
+        makedirs(target_dir, exist_ok=True)
+    except:
+        logger.critical('failed to create resource directory {0} for plugin {1}'.format(target_dir, name))
+        exit(3)
 
 
     resources = []
     resources = []
 
 
     if hasattr(pkg, 'js_dependencies'):
     if hasattr(pkg, 'js_dependencies'):
         resources.extend(map(basename, pkg.js_dependencies))
         resources.extend(map(basename, pkg.js_dependencies))
         pkg.js_dependencies = tuple([
         pkg.js_dependencies = tuple([
-            check_resource(pkg.__base_path, x, name, target_dir, plugin_dir)
+            sync_resource(pkg.__base_path, x, name, target_dir, plugin_dir)
             for x in pkg.js_dependencies
             for x in pkg.js_dependencies
         ])
         ])
     if hasattr(pkg, 'css_dependencies'):
     if hasattr(pkg, 'css_dependencies'):
         resources.extend(map(basename, pkg.css_dependencies))
         resources.extend(map(basename, pkg.css_dependencies))
         pkg.css_dependencies = tuple([
         pkg.css_dependencies = tuple([
-            check_resource(pkg.__base_path, x, name, target_dir, plugin_dir)
+            sync_resource(pkg.__base_path, x, name, target_dir, plugin_dir)
             for x in pkg.css_dependencies
             for x in pkg.css_dependencies
         ])
         ])