diff options
author | William Deegan <bill@baddogconsulting.com> | 2017-10-02 17:09:10 -0700 |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2017-10-02 17:09:10 -0700 |
commit | 56080b1c09eb9659419c5ada7c0a888fc048822c (patch) | |
tree | 68151b0cf58a8bebfcf7832f83e6976b95c0159a /site_scons | |
parent | 85d22ffb1ee6501a5bc3c446897b555b78631ff6 (diff) | |
download | scons-git-56080b1c09eb9659419c5ada7c0a888fc048822c.tar.gz |
Migrate some logic from SConstruct into site_scons to simplify top level SConstruct
Diffstat (limited to 'site_scons')
-rw-r--r-- | site_scons/SConsRevision.py | 40 | ||||
-rw-r--r-- | site_scons/site_init.py | 1 |
2 files changed, 41 insertions, 0 deletions
diff --git a/site_scons/SConsRevision.py b/site_scons/SConsRevision.py new file mode 100644 index 000000000..11de67097 --- /dev/null +++ b/site_scons/SConsRevision.py @@ -0,0 +1,40 @@ +import os + +def SCons_revision(target, source, env): + """Interpolate specific values from the environment into a file. + + This is used to copy files into a tree that gets packaged up + into the source file package. + """ + t = str(target[0]) + s = source[0].rstr() + + try: + with open(s, 'r') as fp: + contents = fp.read() + + + # Note: We construct the __*__ substitution strings here + # so that they don't get replaced when this file gets + # copied into the tree for packaging. + contents = contents.replace('__BUILD' + '__', env['BUILD']) + contents = contents.replace('__BUILDSYS' + '__', env['BUILDSYS']) + contents = contents.replace('__COPYRIGHT' + '__', env['COPYRIGHT']) + contents = contents.replace('__DATE' + '__', env['DATE']) + contents = contents.replace('__DEB_DATE' + '__', env['DEB_DATE']) + + contents = contents.replace('__DEVELOPER' + '__', env['DEVELOPER']) + contents = contents.replace('__FILE' + '__', str(source[0]).replace('\\', '/')) + contents = contents.replace('__MONTH_YEAR'+ '__', env['MONTH_YEAR']) + contents = contents.replace('__REVISION' + '__', env['REVISION']) + contents = contents.replace('__VERSION' + '__', env['VERSION']) + contents = contents.replace('__NULL' + '__', '') + open(t, 'w').write(contents) + except UnicodeDecodeError as e: + print("Error decoding file:%s just copying no revision edit") + with open(s, 'rb') as fp: + contents = fp.read() + open(t, 'wb').write(contents) + + + os.chmod(t, os.stat(s)[0])
\ No newline at end of file diff --git a/site_scons/site_init.py b/site_scons/site_init.py new file mode 100644 index 000000000..8e07907a1 --- /dev/null +++ b/site_scons/site_init.py @@ -0,0 +1 @@ +from SConsRevision import SCons_revision
\ No newline at end of file |