forked from jedie/PyLucid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
72 lines (55 loc) · 1.77 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# coding: utf-8
"""
PyLucid
~~~~~~~
A Python based Content Management System
written with the help of the powerful
Webframework Django.
:copyleft: 2009-2012 by the PyLucid team, see AUTHORS for more details.
:license: GNU GPL v3 or above, see LICENSE for more details.
"""
import os
import time
import warnings
import subprocess
__version__ = (0, 12, 0)
VERSION_STRING = '.'.join(str(part) for part in __version__)
#VERBOSE = True
VERBOSE = False
def _error(msg):
if VERBOSE:
warnings.warn(msg)
return ""
def get_commit_timestamp(path=None):
if path is None:
path = os.path.abspath(os.path.dirname(__file__))
try:
process = subprocess.Popen(
# %ct: committer date, UNIX timestamp
["/usr/bin/git", "log", "--pretty=format:%ct", "-1", "HEAD"],
shell=False, cwd=path,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
)
except Exception, err:
return _error("Can't get git hash: %s" % err)
process.wait()
returncode = process.returncode
if returncode != 0:
return _error(
"Can't get git hash, returncode was: %r"
" - git stdout: %r"
" - git stderr: %r"
% (returncode, process.stdout.readline(), process.stderr.readline())
)
output = process.stdout.readline().strip()
try:
timestamp = int(output)
except Exception, err:
return _error("git log output is not a number, output was: %r" % output)
try:
return time.strftime(".%m%d", time.gmtime(timestamp))
except Exception, err:
return _error("can't convert %r to time string: %s" % (timestamp, err))
VERSION_STRING += get_commit_timestamp()
if __name__ == "__main__":
print VERSION_STRING