root / ase / svnversion_io.py @ 1
Historique | Voir | Annoter | Télécharger (1,3 ko)
1 | 1 | tkerber | # Copyright (C) 2003 CAMP
|
---|---|---|---|
2 | 1 | tkerber | # Please see the accompanying LICENSE file for further information.
|
3 | 1 | tkerber | |
4 | 1 | tkerber | from os import path |
5 | 1 | tkerber | try:
|
6 | 1 | tkerber | from subprocess import Popen, PIPE |
7 | 1 | tkerber | except ImportError: |
8 | 1 | tkerber | from os import popen3 |
9 | 1 | tkerber | else:
|
10 | 1 | tkerber | def popen3(cmd): |
11 | 1 | tkerber | p = Popen(cmd, shell=True, close_fds=True, |
12 | 1 | tkerber | stdin=PIPE, stdout=PIPE, stderr=PIPE) |
13 | 1 | tkerber | return p.stdin, p.stdout, p.stderr
|
14 | 1 | tkerber | |
15 | 1 | tkerber | def write_svnversion(svnversion, dir): |
16 | 1 | tkerber | svnversionfile = path.join(dir, 'svnversion.py') |
17 | 1 | tkerber | f = open(svnversionfile,'w') |
18 | 1 | tkerber | f.write('svnversion = "%s"\n' % svnversion)
|
19 | 1 | tkerber | f.close() |
20 | 1 | tkerber | print 'svnversion = ' +svnversion+' written to '+svnversionfile |
21 | 1 | tkerber | # assert svn:ignore property if the installation is under svn control
|
22 | 1 | tkerber | # because svnversion.py has to be ignored by svn!
|
23 | 1 | tkerber | cmd = popen3('svn propset svn:ignore svnversion.py '+dir)[1] |
24 | 1 | tkerber | output = cmd.read() |
25 | 1 | tkerber | cmd.close() |
26 | 1 | tkerber | |
27 | 1 | tkerber | def get_svnversion_from_svn(dir): |
28 | 1 | tkerber | # try to get the last svn version number from svnversion
|
29 | 1 | tkerber | cmd = popen3('svnversion -n '+dir)[1] # assert we are in the project dir |
30 | 1 | tkerber | output = cmd.read().strip() |
31 | 1 | tkerber | cmd.close() |
32 | 1 | tkerber | if output.startswith('exported'): |
33 | 1 | tkerber | # we build from exported source (e.g. rpmbuild)
|
34 | 1 | tkerber | output = None
|
35 | 1 | tkerber | return output
|
36 | 1 | tkerber | |
37 | 1 | tkerber | svnversion = get_svnversion_from_svn(dir='ase')
|
38 | 1 | tkerber | if svnversion:
|
39 | 1 | tkerber | write_svnversion(svnversion, dir='ase') |