You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2015/12/10 12:09:28 UTC
svn commit: r1719062 - /commons/cms-site/trunk/conf/parse-latest-release.py
Author: sebb
Date: Thu Dec 10 11:09:27 2015
New Revision: 1719062
URL: http://svn.apache.org/viewvc?rev=1719062&view=rev
Log:
Fix up to use new DOAP location
Modified:
commons/cms-site/trunk/conf/parse-latest-release.py
Modified: commons/cms-site/trunk/conf/parse-latest-release.py
URL: http://svn.apache.org/viewvc/commons/cms-site/trunk/conf/parse-latest-release.py?rev=1719062&r1=1719061&r2=1719062&view=diff
==============================================================================
--- commons/cms-site/trunk/conf/parse-latest-release.py (original)
+++ commons/cms-site/trunk/conf/parse-latest-release.py Thu Dec 10 11:09:27 2015
@@ -1,10 +1,11 @@
#!/usr/bin/python
-from string import split
-from string import replace
+import os
+import os.path
-import subprocess
+# TODO rewrite to use standard Python XML(minidom or xml.etree) instead of requiring extra package
from lxml import etree
+
from distutils.version import LooseVersion, StrictVersion
def findLatestVersion(element, version_tag, date_tag):
@@ -22,14 +23,9 @@ def findLatestVersion(element, version_t
return latest_version, latest_date
-def getReleaseInfo(url):
- try:
- content = subprocess.check_output('svn cat ' + doap_file_url, shell=True, stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError:
- return None, None
-
- root = etree.XML(content)
- tree = etree.ElementTree(root)
+def getReleaseInfo(file):
+ with open(file) as f:
+ tree = etree.parse(f).getroot()
version = None
date = None
@@ -52,21 +48,18 @@ def getReleaseInfo(url):
# start
-svnbaseurl='http://svn.apache.org/repos/asf/commons/proper/'
+DIR = '../doap' # location relative to the properties file
f = open('component_releases.properties', 'w+')
-s = subprocess.check_output('svn ls ' + svnbaseurl, shell=True)
-
-for component in split(s):
- comp_name = replace(component, "/", "")
- doap_file_url = svnbaseurl + comp_name + '/' + 'trunk/' + 'doap_' + comp_name + '.rdf'
- version, date = getReleaseInfo(doap_file_url)
- print comp_name, version, date
+for file in os.listdir(DIR):
+ comp_name = file[5:-4] # drop doap_ prefix and .rdf suffix
+ version, date = getReleaseInfo(os.path.join(DIR, file))
+ print(comp_name, version, date)
if version != None:
f.write(comp_name + 'Version=' + version + '\n')
f.write(comp_name + 'Released=' + date + '\n')
- else:
+ else: # should not happen unless DOAP syntax is wrong
f.write(comp_name + 'Version=N/A\n')
f.write(comp_name + 'Released=N/A\n')