2010-10-08 17 views
1

J'utilise mercurial comme SCM, et une sortie de la commande hg parents dans mon makefile pour stocker le numéro de build et informations de version dans mon programme. Cependant, mercurial n'est pas toujours présent sur les machines où j'essaie de construire le programme. Ainsi, hg parent échoue.
Je voudrais utiliser une chaîne de substitution (codée en dur ou sortie d'un autre programme) lorsque mercurial n'est pas disponible. Mais je ne suis pas bon dans makefile script.
Pouvez-vous fournir un indice pour composer une commande makefile qui stockerait la sortie d'un hg parents si elle est disponible, ou la sortie de date si hg n'est pas disponible, dans la variable interne.Expression qui renvoie soit la chaîne de sortie d'un programme ou d'une chaîne spécifique, si le programme n'existe pas

Répondre

1

C'est un peu de mauvaise humeur, mais ça marche pour moi:

X=$(shell hg parent || date) 
+0

Cranky comment? C'est comme ça que je le ferais, avec l'exception possible de faire un petit script shell pour faire un test pour 'hg' d'abord, puis' hg parents' ou 'date'. De cette façon, vous n'avez pas de messages de commandes non trouvés. –