infocalypse

(djk)
2009-05-11: Added the fred_staging mirror to the known repo list.

Added the fred_staging mirror to the known repo list.

diff --git a/infocalypse/knownrepos.py b/infocalypse/knownrepos.py
--- a/infocalypse/knownrepos.py
+++ b/infocalypse/knownrepos.py
@@ -22,19 +22,37 @@
     let me know and I'll add it.
 """
 
+from fcpclient import get_usk_hash
+
 # Not sure about this. Flat text file instead?
 KNOWN_REPOS = (
     ('djk@isFiaD04zgAgnrEC5XJt1i4IE7AkNPqhBG5bONi6Yks',
      'USK@kRM~jJVREwnN2qnA8R0Vt8HmpfRzBZ0j4rHC2cQ-0hw,'
-    + '2xcoQVdQLyqfTpF2DpkdUIbHFCeL4W~2X1phUYymnhM,AQACAAE/'
-    + 'infocalypse.hgext.R1/23'),
+     + '2xcoQVdQLyqfTpF2DpkdUIbHFCeL4W~2X1phUYymnhM,AQACAAE/'
+     + 'infocalypse.hgext.R1/28'), # This code.
+    ('djk@isFiaD04zgAgnrEC5XJt1i4IE7AkNPqhBG5bONi6Yks',
+     'USK@kRM~jJVREwnN2qnA8R0Vt8HmpfRzBZ0j4rHC2cQ-0hw,'
+     + '2xcoQVdQLyqfTpF2DpkdUIbHFCeL4W~2X1phUYymnhM,AQACAAE/'
+     + 'fred_staging.R1/0'), # Expiremental git->hg mirror
     )
 
-# LATER: Compile from KNOWN_REPOS? To risky?
-DEFAULT_TRUST = {
-    'djk@isFiaD04zgAgnrEC5XJt1i4IE7AkNPqhBG5bONi6Yks':
-    ('be68e8feccdd', ),
-    }
+
+def build_trust_list(id_usk_list):
+    """ INTERNAL: Compile the default trust map from a list of
+        (trusted_fms_id, USK) tuples. """
+    table = {}
+    for fms_id, usk in id_usk_list:
+        hashes = table.get(fms_id, [])
+        usk_hash = get_usk_hash(usk)
+        if not usk_hash in hashes:
+            hashes.append(usk_hash)
+        table[fms_id] = hashes
+    for fms_id in table.keys()[:]:
+        table[fms_id] = tuple(table[fms_id])
+    return table
+
+# fms_id -> (usk_hash0, ..., usk_hashn) map
+DEFAULT_TRUST = build_trust_list(KNOWN_REPOS)
 
 DEFAULT_GROUPS = ('infocalypse.notify', )
 DEFAULT_NOTIFICATION_GROUP = 'infocalypse.notify'