allow different release codes
authorMoritz Warning <moritzwarning@web.de>
Thu, 30 Jul 2020 23:20:30 +0000 (01:20 +0200)
committerMoritz Warning <moritzwarning@web.de>
Thu, 30 Jul 2020 23:21:12 +0000 (01:21 +0200)
misc/collect.py
www/index.js

index 466df12f3e84ff38ae1455fb6a84c5c86720c822..b5dcabef6e357b6917afb8813289931fc7833064 100755 (executable)
@@ -47,7 +47,7 @@ def get_title_name(title):
   else:
     return "{} {} {}".format(title.get('vendor', ''), title['model'], title.get('variant', '')).strip()
 
-def add_profile(id, target, profile):
+def add_profile(id, target, profile, code=None):
   images = []
   for image in profile['images']:
       images.append({'name': image['name'], 'type': image['type']})
@@ -67,6 +67,9 @@ def add_profile(id, target, profile):
 
     output['models'][name] = {'id': id, 'target': target, 'images': images}
 
+    if code is not None:
+      output['models'][name]['code'] = code
+
 for path in paths:
   with open(path, "r") as file:
     obj = json.load(file)
@@ -84,17 +87,16 @@ for path in paths:
         'models' : {}
       }
 
-    # only support a version_number with images of a single version_commit
-    if output['version_code'] != code:
-      sys.stderr.write('mixed revisions for a release ({output["version_code"]} and {code}) => abort\n')
-      exit(1)
+    # if we have mixed codes/commits, store in device object
+    if output['version_code'] == code:
+      code = None;
 
     try:
       if 'profiles' in obj:
         for id in obj['profiles']:
-          add_profile(id, obj.get('target'), obj['profiles'][id])
+          add_profile(id, obj.get('target'), obj['profiles'][id], code)
       else:
-        add_profile(obj['id'], obj['target'], obj)
+        add_profile(obj['id'], obj['target'], obj, code)
     except json.decoder.JSONDecodeError as e:
       sys.stderr.write(f'Skip {path}\n   {e}\n')
     except KeyError as e:
index 16b2d69e5eab8701b3dda5d8564fe575a1788786..0efb22696634b6c31debca864f8a04bceacbb058 100644 (file)
@@ -377,7 +377,7 @@ function updateImages(version, code, date, model, url, mobj, is_custom) {
     $('#image-model').innerText = model;
     $('#image-target').innerText = target;
     $('#image-version').innerText = version;
-    $('#image-code').innerText = code;
+    $('#image-code').innerText = mobj['code'] || code;
     $('#image-date').innerText = date;
 
     images.sort((a, b) => a.name.localeCompare(b.name));