source: install/setversion.py @ 4240

Last change on this file since 4240 was 4240, checked in by toby, 22 months ago

work on 32-bit windows build

  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.6 KB
Line 
1import sys
2import platform
3import subprocess
4
5def MakeByte2str(arg):
6    '''Convert output from subprocess pipes (bytes) to str (unicode) in Python 3.
7    In Python 2: Leaves output alone (already str).
8    Leaves stuff of other types alone (including unicode in Py2)
9    Works recursively for string-like stuff in nested loops and tuples.
10
11    typical use::
12        out = MakeByte2str(out)
13    or::
14        out,err = MakeByte2str(s.communicate())
15   
16    '''
17    if isinstance(arg,str): return arg
18    if isinstance(arg,bytes): return arg.decode()
19    if isinstance(arg,list):
20        return [MakeByte2str(i) for i in arg]
21    if isinstance(arg,tuple):
22        return tuple([MakeByte2str(i) for i in arg])
23    return arg
24svn = 'svn' # assume in path
25cmd = [svn,'info','https://subversion.xray.aps.anl.gov/pyGSAS/trunk']
26s = subprocess.Popen(cmd,
27                    stdout=subprocess.PIPE,stderr=subprocess.PIPE)
28out,err = MakeByte2str(s.communicate())
29if err:
30    print ('subversion error!\nout=%s'%out)
31    print ('err=%s'%err)
32    sys.exit(1)
33for line in out.split('\n'):
34    if line.startswith('Rev'):
35        version = line.split()[1].strip()
36        break
37else:
38    print ('Version not found!\nout=%s'%out)
39    sys.exit(1)
40for fil in 'g2complete/meta.yaml','g2full/construct.yaml':
41    fp = open(fil+'.template','r')
42    out = fp.read().replace('**Version**',version)
43    if sys.platform == "win32" and platform.architecture()[0] != '64bit':
44        print('changing for 32-bit windows')
45        out = out.replace('win-64','win-32')
46    fp.close()
47    print('Creating',fil)
48    fp = open(fil,'w')
49    fp.write(out)
50    fp.close()
51   
Note: See TracBrowser for help on using the repository browser.