- Nek,
Hello tout le monde,
J’essaie de faire en sorte que ma task "prod" ne soit pas appelable sans spécifier la variable d’environment en "staging" ou "prod".
J’ai donc écrit le makefile suivant :
prod:
is_production_environment=
ifeq ($(ENV),prod)
is_production_environment = yes
endif
ifeq ($(ENV),staging)
is_production_environment = yes
endif
ifndef is_production_environment
$(error ENV is not prod, use `make prod ENV=prod` or `make prod ENV=staging`)
endif
{make build}
Malheureusement l’output est systématiquement la suivante :
Makefile:38: *** ENV is not prod, use `make prod ENV=prod` or `make prod ENV=staging`. Arrêt.
Et si je supprime la dernière condition, j’ai des erreurs sur les conditions précédentes :
/bin/sh: 1: Syntax error: word unexpected (expecting ")")
make: *** [Makefile:43: prod] Error 2
Si ça vous parle je suis ouvert aux suggestions. J’ai trouvé un workaround tout pourri, c’est de faire la condition hors de la task et d’utiliser la commande test
. Pourtant le net regorge d’exemples où les conditions sont dans les tasks…
ifeq ($(ENV),prod)
is_production_environment = yes
endif
ifeq ($(ENV),staging)
echo "hello"
is_production_environment = yes
endif
prod:
# Next line makes makefile fail.
@test $(is_production_environment)
${MAKE} build
Des idées ?
+0
-0