25 |
25 |
'''Find current version of the source code'''
|
26 |
26 |
import os.path
|
27 |
27 |
import subprocess
|
28 |
|
import qommon
|
29 |
28 |
|
30 |
29 |
base = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
|
31 |
30 |
package = None
|
32 |
31 |
if os.path.exists(os.path.join(base, 'qommon')):
|
33 |
32 |
package = os.path.basename(base)
|
34 |
|
# Special treatment for authentic as qommon is not in the application
|
35 |
|
# module but in a subdirectory named 'external'
|
36 |
|
if package == 'external':
|
37 |
|
base = os.path.abspath(os.path.join(base, '..'))
|
38 |
|
package = os.path.basename(base)
|
39 |
33 |
if os.path.exists(os.path.join(base, '..', 'setup.py')):
|
40 |
34 |
srcdir = os.path.join(base, '..')
|
41 |
35 |
else:
|
42 |
36 |
srcdir = None
|
43 |
37 |
|
44 |
|
# get qommon version
|
45 |
|
qversion = qommon.__version__.split()
|
46 |
|
if len(qversion) > 1:
|
47 |
|
qversion = "qommon svn-%s" % qversion[1]
|
48 |
|
else:
|
49 |
|
qversion = ""
|
50 |
|
|
51 |
38 |
# not run from source directory
|
52 |
39 |
if not srcdir:
|
53 |
40 |
# but have a qommon container
|
... | ... | |
73 |
60 |
except:
|
74 |
61 |
version = None
|
75 |
62 |
|
76 |
|
# svn ?
|
77 |
|
if os.path.exists(os.path.join(srcdir, '.svn')):
|
78 |
|
try:
|
79 |
|
process = subprocess.Popen(['svn', 'info'], env={'LANG': 'C'},
|
80 |
|
stdout=subprocess.PIPE, cwd=srcdir)
|
81 |
|
output = process.communicate()[0]
|
82 |
|
# 4th line, second token
|
83 |
|
rev = output.splitlines()[4].split()[1]
|
84 |
|
url = "https://labs.libre-entreprise.org/scm/viewvc.php?view=rev&root=%s&revision=%s" % (package, rev)
|
85 |
|
if version:
|
86 |
|
revision = htmltext('%s %s <a href="%s">svn-%s</a> %s') % (package, version, url, rev, qversion)
|
87 |
|
else:
|
88 |
|
revision = htmltext('%s <a href="%s">svn-%s</a> %s') % (package, url, rev, qversion)
|
89 |
|
except OSError:
|
90 |
|
pass
|
91 |
|
except IndexError:
|
92 |
|
pass
|
93 |
|
elif os.path.exists(os.path.join(srcdir,'.git')):
|
|
63 |
if os.path.exists(os.path.join(srcdir,'.git')):
|
94 |
64 |
try:
|
95 |
65 |
process = subprocess.Popen(['git', 'log', '--pretty=oneline', '-1'],
|
96 |
66 |
stdout=subprocess.PIPE, cwd=srcdir)
|
... | ... | |
102 |
72 |
branch = starred_line.split()[1]
|
103 |
73 |
url = "https://repos.entrouvert.org/%s.git/commit/?id=%s" % (package,rev)
|
104 |
74 |
if version:
|
105 |
|
revision = htmltext('%s %s <a href="%s">git %s\'s branch rev:%s</a> %s') % (package, version, url, branch, rev[:8], qversion)
|
|
75 |
revision = htmltext('%s %s <a href="%s">git %s\'s branch rev:%s</a>') % (
|
|
76 |
package, version, url, branch, rev[:8])
|
106 |
77 |
else:
|
107 |
|
revision = htmltext('%s <a href="%s">git %s\'s branch rev:%s</a> %s') % (package, url, branch, rev[:8], qversion)
|
|
78 |
revision = htmltext('%s <a href="%s">git %s\'s branch rev:%s</a>') % (
|
|
79 |
package, url, branch, rev[:8])
|
108 |
80 |
except OSError:
|
109 |
81 |
pass
|
110 |
82 |
else:
|
111 |
|
-
|