Current section

Files

Jump to
rebar3_lfe src rebar3_lfe_version.erl
Raw

src/rebar3_lfe_version.erl

-module(rebar3_lfe_version).
-export([app_version/1,
app_and_version/1,
rebar_versions/0,
language_versions/0,
versions/1,
versions_with_tooling/1]).
app_version(AppName) ->
application:load(AppName),
case application:get_key(AppName, vsn) of
{ok, Vsn} -> Vsn;
Default -> Default
end.
app_and_version(AppName) ->
{AppName, app_version(AppName)}.
rebar_versions() ->
[{rebar, app_version(rebar)},
{rebar3_lfe, app_version(rebar3_lfe)}
].
language_versions() ->
[{lfe, app_version(lfe)},
{erlang, erlang:system_info(otp_release)},
{emulator, erlang:system_info(version)},
{driver_version, erlang:system_info(driver_version)}
].
versions(AppNames) ->
[{apps, [app_and_version(AppName) || AppName <- AppNames]},
{languages, language_versions()}].
versions_with_tooling(AppNames) ->
lists:append(versions(AppNames), [{tooling, rebar_versions()}]).