diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats index 2b2194b9a5..eb6d1836c3 100755 --- a/support/scripts/pkg-stats +++ b/support/scripts/pkg-stats @@ -44,6 +44,11 @@ RM_API_STATUS_NOT_FOUND = 4 HTTP_HEADERS = {'User-Agent': 'buildroot.org pkg-stats'} +LATEST_SORT_GOOD = 3 +LATEST_SORT_ERROR = 2 +LATEST_SORT_UNKNOWN = 1 +LATEST_SORT_NEEDS_UPDATE = 0 + class Defconfig: def __init__(self, name, path): @@ -766,7 +771,15 @@ addedCSSRules = [ addedCSSRules.forEach(rule => styleSheet.insertRule(rule)); -function sortGrid(sortLabel){ +function byInnerText(el) { + return el.innerText; +} + +function byIsLatest(el) { + return el.getAttribute('data-latest-sort'); +} + +function sortGrid(sortLabel, sortBy=byInnerText){ let i = 0; let pkgSortArray = [], sortedPkgArray = [], pkgStringSortArray = [], pkgNumSortArray = []; const git_hash_regex = /[a-f,0-9]/gi; @@ -786,10 +799,10 @@ function sortGrid(sortLabel){ columnValues.forEach((listing) => { let sortArr = []; sortArr[0] = listing.id.replace(sortLabel+"_", ""); - if (!listing.innerText){ + if (!sortBy(listing)) { sortArr[1] = -1; } else { - sortArr[1] = listing.innerText; + sortArr[1] = sortBy(listing); }; pkgSortArray.push(sortArr); }); @@ -1011,14 +1024,20 @@ def dump_html_pkg(f, pkg): div_class = ["centered"] div_class.append(f'_{pkg_css_class}') div_class.append("latest_version data") + data_latest_sort = None if pkg.latest_version['status'] == RM_API_STATUS_ERROR: div_class.append("version-error") + data_latest_sort = LATEST_SORT_ERROR if pkg.latest_version['version'] is None: div_class.append("version-unknown") + if data_latest_sort != LATEST_SORT_ERROR: + data_latest_sort = LATEST_SORT_UNKNOWN elif pkg.latest_version['version'] != pkg.current_version: div_class.append("version-needs-update") + data_latest_sort = LATEST_SORT_NEEDS_UPDATE else: div_class.append("version-good") + data_latest_sort = LATEST_SORT_GOOD if pkg.latest_version['status'] == RM_API_STATUS_ERROR: latest_version_text = "Error" @@ -1038,7 +1057,8 @@ def dump_html_pkg(f, pkg): else: latest_version_text += "found by guess" - f.write(f'
{latest_version_text}
\n') + f.write(f'
{latest_version_text}
\n') # Warnings data_field_id = f'warnings__{pkg_css_class}' @@ -1170,7 +1190,7 @@ def dump_html_all_pkgs(f, packages): class="centered hash_file data label">Hash file
Current version
-
Latest version
Warnings