[tor-commits] [doctor/master] Replace package wiki index table

atagar at torproject.org atagar at torproject.org
Fri Nov 9 19:10:30 UTC 2018


commit c3bcf445de7732ea94421d7083e6f16c060d271d
Author: Damian Johnson <atagar at torproject.org>
Date:   Thu Nov 8 18:20:49 2018 -0800

    Replace package wiki index table
    
    Our PACKAGES constant match our wiki's layout so there's no need to have a
    separate dictionary with static indices. In the process also learned that we
    weren't tracking Nyx's Fedora package.
---
 package_versions.py | 63 ++++++++++-------------------------------------------
 1 file changed, 11 insertions(+), 52 deletions(-)

diff --git a/package_versions.py b/package_versions.py
index c467eed..8933d75 100755
--- a/package_versions.py
+++ b/package_versions.py
@@ -45,6 +45,7 @@ PACKAGES = [
   ('nyx', [
     Package('mac', 'https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/nyx.rb', 'nyx-([0-9\.]+).tar.gz'),
     Package('debian', 'https://packages.debian.org/sid/nyx', DEBIAN_VERSION),
+    Package('fedora', 'https://apps.fedoraproject.org/packages/nyx', FEDORA_VERSION),
     Package('gentoo', 'https://packages.gentoo.org/packages/net-misc/nyx', None),
     Package('archlinux', 'https://aur.archlinux.org/packages/nyx/', AUR_VERSION),
     Package('slackware', 'https://slackbuilds.org/repository/14.2/python/nyx/', 'nyx-([0-9\.]+).tar.gz'),
@@ -111,6 +112,7 @@ def wiki_package_versions():
 
   request = fetch_url(TRAC_URL)
   version_entries = []
+  expected_count = sum([len(packages) for project, packages in PACKAGES])
 
   for line in request.splitlines():
     m = re.search('<b>Version:</b> <a href=".*">(.*)</a>', line)
@@ -118,60 +120,17 @@ def wiki_package_versions():
     if m:
       version_entries.append(m.group(1))
 
-  if len(version_entries) != 42:
+  if len(version_entries) != expected_count:
     raise IOError('Table on %s no longer matches what this daemon expects (had %i entries)' % (TRAC_URL, len(version_entries)))
 
-  return {
-    'tor': {
-      'mac': version_entries[0],
-      'debian': version_entries[1],
-      'fedora': version_entries[2],
-      'gentoo': version_entries[3],
-      'archlinux': version_entries[4],
-      'slackware': version_entries[5],
-      'freebsd': version_entries[6],
-      'openbsd': version_entries[7],
-      'netbsd': version_entries[8],
-    }, 'nyx': {
-      'mac': version_entries[9],
-      'debian': version_entries[10],
-      'fedora': version_entries[11],
-      'gentoo': version_entries[12],
-      'archlinux': version_entries[13],
-      'slackware': version_entries[14],
-      'freebsd': version_entries[15],
-      'openbsd': version_entries[16],
-      'netbsd': version_entries[17],
-    }, 'stem': {
-      'debian': version_entries[18],
-      'fedora': version_entries[19],
-      'gentoo': version_entries[20],
-      'archlinux': version_entries[21],
-      'slackware': version_entries[22],
-      'freebsd': version_entries[23],
-      'openbsd': version_entries[24],
-      'netbsd': version_entries[25],
-    }, 'txtorcon': {
-      'debian': version_entries[26],
-      'gentoo': version_entries[27],
-      'archlinux': version_entries[28],
-      'slackware': version_entries[29],
-      'freebsd': version_entries[30],
-      'netbsd': version_entries[31],
-    }, 'torsocks': {
-      'mac': version_entries[32],
-      'debian': version_entries[33],
-      'fedora': version_entries[34],
-      'gentoo': version_entries[35],
-      'archlinux': version_entries[36],
-      'slackware': version_entries[37],
-      'freebsd': version_entries[38],
-      'openbsd': version_entries[39],
-    }, 'ooni probe': {
-      'mac': version_entries[40],
-      'archlinux': version_entries[41],
-    }
-  }
+  result, index = {}, 0
+
+  for project, packages in PACKAGES:
+    for pkg in packages:
+      result.setdefault(project, {})[pkg.platform] = version_entries[index]
+      index += 1
+
+  return result
 
 
 def gentoo_version(request):





More information about the tor-commits mailing list