Statistiques
| Révision :

root / ase / svnversion_io.py @ 19

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')