2011-02-15 12 views

Respuesta

0

Puede definir un generador que toma el archivo de plantilla como una entrada y produce los datos sustituidos como salida. La forma más flexible es usar una función de Python como la Acción de su constructor. De esta forma, puede usar el soporte de expresiones regulares enriquecido de Python para realizar la sustitución. En cuanto a las variables y sus valores, puede acceder a las variables de construcción desde el argumento "env" hasta la función. Si todas las variables son variables de construcción, puede usar env.subst() para realizar la búsqueda y reemplazarla por usted.

Alternativamente, si se trata de una opción única, simplemente puede usar un comando que se desvanece en "sed" o un programa similar y hace todo el trabajo por usted.

6

Puede usar el método Substfile. Esto toma un archivo de entrada y produce un archivo de salida sustituyendo variables marcadas. Así que si usted tiene script.py.in:

#!/usr/bin/python 
print "$SOFTWARE_VERSION" 

continuación, puede utilizar el siguiente archivo de SConsctruct para generar una salida:

env = Environment(tools=['textfile']) 
script_dict = {'\$SOFTWARE_VERSION': '1.0'} 
env.Substfile('script.py.in', SUBST_DICT = script_dict) 

Es necesario para escapar de la $ en la cadena '\$SOFTWARE_VERSION' de otra manera SCons lo interpreta como una interna Variable ambiental. El resultado sería un archivo script.py con el siguiente contenido:

#!/usr/bin/python 
print "1.0" 

Luego, puede instalar este archivo sustituido resultante utilizando env.Install.

Cuestiones relacionadas