Se trata de una escritura del golpe que solía construir un programa:c makefile con comandos de shell y variables
dateString=$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h
echo "#define VERSION_REVISION \"$revision\"" >> version.h
pasé de usar el build.sh a un makefile:
version.h:
dateString=$$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h.tmp
echo "#define VERSION_REVISION \"$revision\"" >> version.h.tmp
mv version.h.tmp version.h
Pero el archivo version.h termina así:
#define VERSION_DATE "\ateString"
#define VERSION_REVISION "\evision"
Parece que no puedo obtener las variables de shell correctamente. Creo que es porque terminan siendo vars Makefile. Si alguien sabe cómo hacerlo, no me importaría saber cómo. Muchas gracias.
Excelente, eso ha hecho el trabajo, gracias pooh. Gracias a Paul también por la respuesta. –
Tenga en cuenta que esta versión del script no es "internacional". En francés, por ejemplo, debe grep para "Révision" (observe el acento). – Gui13
Si tiene el ejecutable 'svnversion', puede reemplazar directamente su larga' svn info | grep ... 'por él. Te da la revisión directamente. – Gui13