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) ->