define uma variável com base no valor de uma variável de ambiente

1

Dentro do meu makefile, eu preciso definir uma variável baseada em uma variável de ambiente chamada MY_SERVER_ENV .

Eu tentei isso:

gulp:=./node_modules/.bin/gulp
ifeq ($(MY_SERVER_ENV), 'prod')
    branch:=production
else
    branch:=deploy
endif


checkvariable:
    @echo $$branch

A saída que recebo:

$ MY_SERVER_ENV=prod make checkvariable

$

A ideia é definir a variável branch to production se a variável de ambiente MY_SERVER_ENV for igual a prod , senão definir branch to deploy .

E como você pode ver, echo $$branch não exibe nada

    
por smarber 07.09.2017 / 10:16

1 resposta

3

branch deve ser acessado como $(branch) e usando

ifeq ($(MY_SERVER_ENV), 'prod')

irá comparar o valor de $MY_SERVER_ENV com a string literal 'prod' (incluindo as aspas simples).

gulp:=./node_modules/.bin/gulp

ifeq "$(MY_SERVER_ENV)" "prod"
    branch:=production
else
    branch:=deploy
endif

help:
        @echo $(branch)

O ifeq pode estar nas seguintes formas:

ifeq (arg1, arg2)
ifeq 'arg1' 'arg2'
ifeq "arg1" "arg2"
ifeq "arg1" 'arg2'
ifeq 'arg1' "arg2"

Referência: link

    
por 07.09.2017 / 10:24

Tags