From c5ae1abd38dbb3a2c0f4e9db4d3b381babf57d3b Mon Sep 17 00:00:00 2001 From: codedust <codedust@users.noreply.github.com> Date: Fri, 8 Jun 2018 02:32:07 +0200 Subject: [PATCH] Refactor device category code --- app.js | 60 ++++++++++++++++++---------------------------------------- 1 file changed, 18 insertions(+), 42 deletions(-) diff --git a/app.js b/app.js index ca16aee..e6c4e71 100644 --- a/app.js +++ b/app.js @@ -140,53 +140,24 @@ var firmwarewizard = function() { PREVIEW_PICTURES_DIR = config.preview_pictures; } - function merge_device_list(obj1, obj2) { - // Merge obj2 in obj1 - for (var vendor_name in obj2) { - if (!(vendor_name in obj1)) { - obj1[vendor_name] = obj2[vendor_name]; - continue; - } - - for (var device_name in obj2[vendor_name]) { - if (!(device_name in obj1[vendor_name])) { - obj1[vendor_name][device_name] = obj2[vendor_name][device_name]; - continue; - } - - for (var revision in obj2[vendor_name][device_name]) { - obj1[vendor_name][device_name][revision] = obj2[vendor_name][device_name][revision]; - } - } - } - } - - function buildModelList() { - var device_list = {} - if (!("enabled_device_categories" in config)) { - return config.vendormodels.recommended; - } - - for (var i=0; i<config.enabled_device_categories.length; i++) { - merge_device_list(device_list, config.vendormodels[config.enabled_device_categories[i]]); - } - - return device_list; + var enabled_device_categories = ['recommended']; + if ("enabled_device_categories" in config) { + enabled_device_categories = config.enabled_device_categories; } function buildVendorModelsReverse() { var vendormodels_reverse = {}; - // create a map of {match : [{vendor, model, default-revision}, ... ], ...} - var vendormodels = buildModelList() - for (var vendor in vendormodels) { - var models = vendormodels[vendor]; - for (var model in models) { - var match = models[model]; - if (typeof match == 'string') { - addArray(vendormodels_reverse, match, {'vendor': vendor, 'model': model, 'revision': ''}); - } else for (var m in match) { - addArray(vendormodels_reverse, m, {'vendor': vendor, 'model': model, 'revision': match[m]}); + for (var device_category in config.vendormodels) { + for (var vendor in config.vendormodels[device_category]) { + var models = config.vendormodels[device_category][vendor]; + for (var model in models) { + var match = models[model]; + if (typeof match == 'string') { + addArray(vendormodels_reverse, match, {'vendor': vendor, 'model': model, 'revision': '', category: device_category}); + } else for (var m in match) { + addArray(vendormodels_reverse, m, {'vendor': vendor, 'model': model, 'revision': match[m], category: device_category}); + } } } } @@ -394,6 +365,11 @@ var firmwarewizard = function() { return; } + if (enabled_device_categories.indexOf(device.category) == -1) { + // the category is not in the list of enabled categories + return; + } + var strippedFilename = filename; strippedFilename = strippedFilename.replace(config.community_prefix, '-'); -- GitLab