[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