如何在rebar3中使用OS环境变量

问题描述 投票:1回答:1

我目前有一个基于rebar3的erlang应用程序,它由一个erlang后端和一个javascript前端组成。为了结合前端和后端构建系统,我使用了一个makefile。我的rebar.config看起来像这样:

rebar.config

...
{relx, [{release, {pgserver_dev, "0.1.0"},[pgserver]}
       ]},
       {dev_mode, true},
       {include_erts, false},
       {extended_start_script, true}
]}.

Makefile

...
release:
    @echo "creating release"
    rebar3 release
    ln -sf _build/$(PROFILE)/rel/$(APP)_dev/bin/$(APP)_dev /.run-$(APP)-$(PROFILE)

我想在rebar.config文件中使用环境变量来控制参数,例如版本-创建发行版时的{pgserver_dev, "0.1.0"}。如果我指定一个变量:VERSION,则构建可能如下所示:

rebar.config

...
{relx, [{release, {pgserver_dev, os:getenv("VERSION")},[pgserver]}
       ]},
       {dev_mode, true},
       {include_erts, false},
       {extended_start_script, true}
]}.

所以,可以在relx / rebar3中使用linux环境变量吗?

P.S .:无法使用os:getenv(),构建失败并显示:

===> Error reading file rebar.config: 15: bad term
makefile erlang relx rebar3
1个回答
0
投票

您可以使用dynamic configuration制作rebar.config.script。它将为您提供一个Erlang脚本,您可以在其中更新或添加rebar.config中的术语。您可以在Github上搜索rebar.config.script以查找示例。我找到了一个here

© www.soinside.com 2019 - 2024. All rights reserved.