1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/buildtools/wafsamba/configure_file.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

42 lines
1.2 KiB
Python
Raw Normal View History

2012-09-06 14:14:34 +04:00
# handle substitution of variables in .in files
import sys
import re
import os
from waflib import Build, Logs
from samba_utils import SUBST_VARS_RECURSIVE
2012-09-06 14:14:34 +04:00
def subst_at_vars(task):
'''substiture @VAR@ style variables in a file'''
env = task.env
s = task.inputs[0].read()
2012-09-06 14:14:34 +04:00
# split on the vars
a = re.split(r'(@\w+@)', s)
2012-09-06 14:14:34 +04:00
out = []
for v in a:
if re.match(r'@\w+@', v):
2012-09-06 14:14:34 +04:00
vname = v[1:-1]
if not vname in task.env and vname.upper() in task.env:
vname = vname.upper()
if not vname in task.env:
Logs.error("Unknown substitution %s in %s" % (v, task.name))
sys.exit(1)
v = SUBST_VARS_RECURSIVE(task.env[vname], task.env)
out.append(v)
contents = ''.join(out)
task.outputs[0].write(contents)
2012-09-06 14:14:34 +04:00
return 0
def CONFIGURE_FILE(bld, in_file, **kwargs):
'''configure file'''
base=os.path.basename(in_file)
t = bld.SAMBA_GENERATOR('INFILE_%s' % base,
rule = subst_at_vars,
source = in_file + '.in',
target = in_file,
vars = kwargs)
Build.BuildContext.CONFIGURE_FILE = CONFIGURE_FILE