diff --git a/src/agner.erl b/src/agner.erl index 413d77b..d9d1bf5 100644 --- a/src/agner.erl +++ b/src/agner.erl @@ -22,7 +22,13 @@ start() -> [_|_] -> ignore end, - filelib:ensure_dir(os:getenv("AGNER_PREFIX") ++ "/"), + case os:getenv("AGNER_EXACT_PREFIX") of + false -> + os:putenv("AGNER_EXACT_PREFIX",filename:join(os:getenv("AGNER_PREFIX"),"packages")); + [_|_] -> + ignore + end, + filelib:ensure_dir(os:getenv("AGNER_EXACT_PREFIX") ++ "/"), inets:start(), ssl:start(), inets:start(httpc,[{profile, agner}]), diff --git a/src/agner_fetch.erl b/src/agner_fetch.erl index a1125df..3d85a39 100644 --- a/src/agner_fetch.erl +++ b/src/agner_fetch.erl @@ -532,7 +532,7 @@ install_dirs(#opts_rec{ spec = {spec, Spec} } = Opts) -> " $AGNER_INSTALL_PREFIX 2>/dev/null && true || true"}, {bin_files, undefined}|Spec], - filelib:ensure_dir(filename:join([os:getenv("AGNER_PREFIX"),"packages"]) ++ "/"), + filelib:ensure_dir(os:getenv("AGNER_EXACT_PREFIX") ++ "/"), InstallPrefix = set_install_prefix(Opts), os:cmd("rm -rf " ++ InstallPrefix), ok = filelib:ensure_dir(InstallPrefix ++ "/"), @@ -545,7 +545,7 @@ install_command(#opts_rec{ spec = {spec, Spec}, directory = Directory, quiet = Q os:putenv("AGNER_PACKAGE_NAME", Package), os:putenv("AGNER_PACKAGE_VERSION", Version), - filelib:ensure_dir(filename:join([os:getenv("AGNER_PREFIX"),"packages"]) ++ "/"), + filelib:ensure_dir(os:getenv("AGNER_EXACT_PREFIX") ++ "/"), InstallPrefix = set_install_prefix(Opts), ok = filelib:ensure_dir(InstallPrefix ++ "/"), @@ -607,6 +607,6 @@ install_command(#opts_rec{ spec = {spec, Spec}, directory = Directory, quiet = Q end. set_install_prefix(#opts_rec{ package = Package, version = Version }) -> - InstallPrefix = filename:join([os:getenv("AGNER_PREFIX"),"packages",Package ++ "-" ++ Version]), + InstallPrefix = filename:join([os:getenv("AGNER_EXACT_PREFIX"), Package ++ "-" ++ Version]), os:putenv("AGNER_INSTALL_PREFIX", InstallPrefix), InstallPrefix. diff --git a/src/agner_main.erl b/src/agner_main.erl index 0c337e7..0c249b8 100644 --- a/src/agner_main.erl +++ b/src/agner_main.erl @@ -321,7 +321,7 @@ handle_command(prefix, Opts) -> io:format("ERROR: Package name required.~n"); Package -> Version = proplists:get_value(version, Opts), - InstallPrefix = filename:join([os:getenv("AGNER_PREFIX"),"packages",Package ++ "-" ++ Version]), + InstallPrefix = filename:join([os:getenv("AGNER_EXACT_PREFIX"),Package ++ "-" ++ Version]), case filelib:is_dir(InstallPrefix) of true -> io:format("~s~n",[InstallPrefix]); @@ -336,7 +336,7 @@ handle_command(uninstall, Opts) -> io:format("ERROR: Package name required.~n"); Package -> Version = proplists:get_value(version, Opts), - InstallPrefix = filename:join([os:getenv("AGNER_PREFIX"),"packages",Package ++ "-" ++ Version]), + InstallPrefix = filename:join([os:getenv("AGNER_EXACT_PREFIX"),Package ++ "-" ++ Version]), case filelib:is_dir(InstallPrefix) of true -> io:format("Uninstalling...~n"), @@ -427,9 +427,12 @@ handle_command(version, _) -> handle_command(config, []) -> io:format("prefix="), handle_command(config,[{variable, "prefix"}]), + io:format("exact_prefix="), handle_command(config,[{variable, "exact_prefix"}]), io:format("bin="), handle_command(config,[{variable, "bin"}]); handle_command(config, [{variable, "prefix"}]) -> io:format("~s~n",[os:getenv("AGNER_PREFIX")]); +handle_command(config, [{variable, "exact_prefix"}]) -> + io:format("~s~n",[os:getenv("AGNER_EXACT_PREFIX")]); handle_command(config, [{variable, "bin"}]) -> io:format("~s~n",[os:getenv("AGNER_BIN")]).