[Pcsclite-git-commit] [website] 05/05: Pre-compute the driver release for each reader

Ludovic Rousseau rousseau at moszumanska.debian.org
Thu May 14 12:02:02 UTC 2015


This is an automated email from the git hooks/post-receive script.

rousseau pushed a commit to branch master
in repository website.

commit afb720c88de21e9ea74dd139534631e97a67d699
Author: Ludovic Rousseau <ludovic.rousseau at free.fr>
Date:   Thu May 14 13:56:29 2015 +0200

    Pre-compute the driver release for each reader
    
    It takes time to run git on every reader description .txt file. So we
    now pre-compute the results in releases.py and use it.
    
    A re-generation of releases.py shall be made each time a new .txt file
    is added.
---
 create_driver_version.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++
 matrix.py                | 102 +++-----------------------------------------
 update.sh                |   2 +
 3 files changed, 115 insertions(+), 97 deletions(-)

diff --git a/create_driver_version.py b/create_driver_version.py
new file mode 100755
index 0000000..e2fa93b
--- /dev/null
+++ b/create_driver_version.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+
+import glob
+import os
+import subprocess
+import json
+import sys
+
+
+def driver_revision_to_version(rev):
+    """
+    convert a git timestamp in the first release after this timestamp
+    """
+
+    # git --no-pager log --no-walk --tags --pretty=format:"%at %D"
+
+    history = [
+        # [ GIT timestamp, CCID release ]
+        [1060726501, "0.1.0"],
+        [1061928960, "0.2.0"],
+        [1063196848, "0.3.0"],
+        [1064303696, "0.3.1"],
+        [1067984198, "0.3.2"],
+        [1076659101, "0.4.0"],
+        [1076762778, "0.4.1"],
+        [1081159012, "0.4.2"],
+        [1088604389, "0.9.0"],
+        [1088682159, "0.9.1"],
+        [1092602639, "0.9.2"],
+        [1110828981, "0.9.3"],
+        [1133120669, "0.9.4"],
+        [1141406512, "1.0.0"],
+        [1145719865, "1.0.1"],
+        [1155316857, "1.1.0"],
+        [1169236419, "1.2.0"],
+        [1169916486, "1.2.1"],
+        [1178788602, "1.3.0"],
+        [1195219620, "1.3.1"],
+        [1201030419, "1.3.2"],
+        [1202307990, "1.3.3"],
+        [1202481816, "1.3.4"],
+        [1203687747, "1.3.5"],
+        [1209559512, "1.3.6"],
+        [1212915681, "1.3.7"],
+        [1214580524, "1.3.8"],
+        [1227023130, "1.3.9"],
+        [1236440124, "1.3.10"],
+        [1248814370, "1.3.11"],
+        [1273312475, "1.3.12"],
+        [1275658182, "1.3.13"],
+        [1280928093, "1.4.0"],
+        [1291387287, "1.4.1"],
+        [1298412771, "1.4.2"],
+        [1301770030, "1.4.3"],
+        [1305276951, "1.4.4"],
+        [1318364453, "1.4.5"],
+        [1333728979, "1.4.6"],
+        [1340355220, "1.4.7"],
+        [1349609804, "1.4.8"],
+        [1358349113, "1.4.9"],
+        [1366116238, "1.4.10"],
+        [1371038152, "1.4.11"],
+        [1376343789, "1.4.12"],
+        [1381312852, "1.4.13"],
+        [1385402957, "1.4.14"],
+        [1392369588, "1.4.15"],
+        [1395587614, "1.4.16"],
+        [1402492197, "1.4.17"],
+        [1410625524, "1.4.18"],
+        [1431502500, "1.4.19"],
+            ]
+
+    for release in history:
+        if rev <= release[0]:
+            return release[1]
+    return "GIT"
+
+
+def main():
+    cwd = os.getcwd()
+    os.chdir("../CCID/readers")
+    real_list = glob.glob("*.txt")
+
+    Releases = dict()
+
+    for reader in real_list:
+        sys.stderr.write(reader + "\n")
+        res = subprocess.check_output(['git', '--no-pager', 'log',
+                                   '--pretty=format:%at', reader])
+
+        # get a list of commit time stamps
+        commits = res.split('\n')
+        # last commit in list is the first in time
+        try:
+            first_commit = int(commits[-1])
+        except ValueError:
+            sys.stderr.write("\n*** No commit found for reader: %s\n\n" % reader)
+            first_commit = 999999999
+
+        Releases[reader] = driver_revision_to_version(first_commit)
+
+    os.chdir(cwd)
+
+    print "Releases = " + json.dumps(Releases, indent=4) + ";"
+
+
+if __name__ == "__main__":
+    main()
diff --git a/matrix.py b/matrix.py
index c763cb5..aaceea4 100755
--- a/matrix.py
+++ b/matrix.py
@@ -27,9 +27,10 @@ import ConfigParser
 #import pprint
 import templayer
 import time
-import subprocess
 from PIL import Image
 
+from releases import Releases
+
 #pp = pprint.PrettyPrinter(indent=4)
 
 CCID_CLASS_CHARACTER = 0x00000000
@@ -286,8 +287,7 @@ def get_driver_version(readers):
     os.chdir("../CCID")
 
     for reader in readers.keys():
-        rev = get_driver_revision(reader)
-        readers[reader]['release'] = driver_revision_to_version(rev)
+        readers[reader]['release'] = get_driver_version_for_reader(reader)
         if 'interface' in readers[reader]:
             readers[reader]['interface']['release'] = readers[reader]['release']
 
@@ -295,75 +295,6 @@ def get_driver_version(readers):
     os.chdir(old_dir)
 
 
-def driver_revision_to_version(rev):
-    """
-    convert a git timestamp in the first release after this timestamp
-    """
-
-    # git --no-pager log --no-walk --tags --pretty=format:"%at %D"
-
-    history = [
-        # [ GIT timestamp, CCID release ]
-        [1060726501, "0.1.0"],
-        [1061928960, "0.2.0"],
-        [1063196848, "0.3.0"],
-        [1064303696, "0.3.1"],
-        [1067984198, "0.3.2"],
-        [1076659101, "0.4.0"],
-        [1076762778, "0.4.1"],
-        [1081159012, "0.4.2"],
-        [1088604389, "0.9.0"],
-        [1088682159, "0.9.1"],
-        [1092602639, "0.9.2"],
-        [1110828981, "0.9.3"],
-        [1133120669, "0.9.4"],
-        [1141406512, "1.0.0"],
-        [1145719865, "1.0.1"],
-        [1155316857, "1.1.0"],
-        [1169236419, "1.2.0"],
-        [1169916486, "1.2.1"],
-        [1178788602, "1.3.0"],
-        [1195219620, "1.3.1"],
-        [1201030419, "1.3.2"],
-        [1202307990, "1.3.3"],
-        [1202481816, "1.3.4"],
-        [1203687747, "1.3.5"],
-        [1209559512, "1.3.6"],
-        [1212915681, "1.3.7"],
-        [1214580524, "1.3.8"],
-        [1227023130, "1.3.9"],
-        [1236440124, "1.3.10"],
-        [1248814370, "1.3.11"],
-        [1273312475, "1.3.12"],
-        [1275658182, "1.3.13"],
-        [1280928093, "1.4.0"],
-        [1291387287, "1.4.1"],
-        [1298412771, "1.4.2"],
-        [1301770030, "1.4.3"],
-        [1305276951, "1.4.4"],
-        [1318364453, "1.4.5"],
-        [1333728979, "1.4.6"],
-        [1340355220, "1.4.7"],
-        [1349609804, "1.4.8"],
-        [1358349113, "1.4.9"],
-        [1366116238, "1.4.10"],
-        [1371038152, "1.4.11"],
-        [1376343789, "1.4.12"],
-        [1381312852, "1.4.13"],
-        [1385402957, "1.4.14"],
-        [1392369588, "1.4.15"],
-        [1395587614, "1.4.16"],
-        [1402492197, "1.4.17"],
-        [1410625524, "1.4.18"],
-        [1431502500, "1.4.19"],
-            ]
-
-    for release in history:
-        if rev <= release[0]:
-            return release[1]
-    return "GIT"
-
-
 def get_changelog():
     """
     read a complete svn2cl Changelog file and merge commits on one line
@@ -386,35 +317,12 @@ def get_changelog():
     return changelog
 
 
-def get_driver_revision(reader):
-    # $ git log --pretty=format:%at iMONO.txt
-    # 1370002950
-    # 1229117957
-
-    # This number is the number of seconds since the epoch
-    # $ date -r 1229117957
-    # Fri Dec 12 22:39:17 CET 2008
-
+def get_driver_version_for_reader(reader):
     # second (or more) interface, remove the '_i1' extension
     if reader[:-1].endswith("_i"):
         reader = reader[:-3]
 
-    print reader
-    res = subprocess.check_output(['git', '--no-pager', 'log',
-                                   '--pretty=format:%at', "readers/" + reader])
-
-    # get a list of commit time stamps
-    commits = res.split('\n')
-    # last commit in list is the first in time
-    try:
-        first_commit = int(commits[-1])
-    except ValueError:
-        print
-        print "*** No commit found for reader:", reader
-        print
-        first_commit = 999999999
-
-    return first_commit
+    return Releases[reader]
 
 
 def get_by_manufacturer(readers):
diff --git a/update.sh b/update.sh
index 07bb572..d8ae2e4 100755
--- a/update.sh
+++ b/update.sh
@@ -3,6 +3,8 @@
 set -e
 set -x
 
+#./create_driver_version.py > releases.py
+
 ./matrix.py
 
 # update the supported_readers.txt file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pcsclite/website.git



More information about the Pcsclite-cvs-commit mailing list