summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build_web_resources.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/scripts/build_web_resources.py b/scripts/build_web_resources.py
index 643920e..12a4ec5 100644
--- a/scripts/build_web_resources.py
+++ b/scripts/build_web_resources.py
@@ -45,6 +45,7 @@ import db
problems_path = os.environ.get('CODEQ_PROBLEMS') or '/var/local/codeq-problems' # where to find problems, the same as server.problems._path_prefix
output_path = os.environ.get('CODEQ_WEB_OUTPUT') or '/var/www/html/data' # the base directory where to create subdirectories and output the files for web
+toplevel = {'style.css'} # files to copy from the toplevel directory (CODEQ_PROBLEMS)
translations = {'sl', 'en'} # translations to seek (sl.py, en.py, ...)
# default values (properties) for various types of items, also the list of properties to copy from modules
@@ -130,7 +131,7 @@ def process_hint_type(hint_type):
return result
resource_tree = {} # a directory tree where branches are paths and leaves are filenames, it is rooted at the web data directory
-def copy_web_resources(package, dst_dir_fragments):
+def copy_web_resources(package, dst_dir_fragments, filter=None):
src_path = os.path.join(problems_path, os.sep.join(package.split('.')))
dst_path = output_path
node = resource_tree
@@ -142,11 +143,14 @@ def copy_web_resources(package, dst_dir_fragments):
node[fragment] = subnode
node = subnode
for filename in os.listdir(src_path):
- if not filename.startswith('.') and not filename.endswith('.py'):
- full_filename = os.path.join(src_path, filename)
- if os.path.isfile(full_filename):
- shutil.copy(full_filename, dst_path)
- node[filename] = True
+ if filter and filename not in filter:
+ continue
+ if filename.startswith('.') or filename.endswith('.py'):
+ continue
+ full_filename = os.path.join(src_path, filename)
+ if os.path.isfile(full_filename):
+ shutil.copy(full_filename, dst_path)
+ node[filename] = True
def dump_language_defs(data, output_path):
# sort groups and problems
@@ -180,6 +184,9 @@ def db_add(table, id, data):
cur.execute(sql, vals + (id,))
try:
+ # copy top-level files (style etc.)
+ copy_web_resources('', [], filter=toplevel)
+
# get problem descriptors
for lang_identifier in os.listdir(problems_path):
lang_data = load_common_data(lang_identifier, language_common_props)