From 871f23f047dfa0196227301948b1055a8d491ab5 Mon Sep 17 00:00:00 2001 From: Zaiming Shi Date: Tue, 22 Jun 2021 11:34:53 +0200 Subject: [PATCH] build: do not allow user override PKG_VSN We have an assertion in code, allowing user to override will compile but not run. --- apps/emqx/src/emqx_app.erl | 9 ++++++++- build | 2 +- rebar.config.erl | 12 +----------- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/apps/emqx/src/emqx_app.erl b/apps/emqx/src/emqx_app.erl index fe21edff5..234f42645 100644 --- a/apps/emqx/src/emqx_app.erl +++ b/apps/emqx/src/emqx_app.erl @@ -122,7 +122,14 @@ get_release() -> release_in_macro(); {_, Vsn} -> %% For emqx release build VsnStr = release_in_macro(), - 1 = string:str(Vsn, VsnStr), %% assert + case string:str(Vsn, VsnStr) of + 1 -> ok; + _ -> + erlang:error(#{ reason => version_mismatch + , source => VsnStr + , built_for => Vsn + }) + end, Vsn end. diff --git a/build b/build index be7813e66..ec533793e 100755 --- a/build +++ b/build @@ -12,7 +12,7 @@ ARTIFACT="$2" # ensure dir cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" -PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}" +PKG_VSN="$(./pkg-vsn.sh)" export PKG_VSN if [ "$(uname -s)" = 'Darwin' ]; then diff --git a/rebar.config.erl b/rebar.config.erl index 98bbde4ca..fef4c864d 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -413,18 +413,8 @@ find_conf_files(App) -> false -> [] end. -env(Name, Default) -> - case os:getenv(Name) of - "" -> Default; - false -> Default; - Value -> Value - end. - get_vsn() -> - PkgVsn = case env("PKG_VSN", false) of - false -> os:cmd("./pkg-vsn.sh"); - Vsn -> Vsn - end, + PkgVsn = os:cmd("./pkg-vsn.sh"), re:replace(PkgVsn, "\n", "", [{return ,list}]). maybe_dump(Config) ->