summaryrefslogtreecommitdiff
path: root/src/rebar_app_installer.erl
diff options
context:
space:
mode:
authorJon Meredith <jon.hg@jonmeredith.com>2009-11-30 11:12:25 -0700
committerJon Meredith <jon.hg@jonmeredith.com>2009-11-30 11:12:25 -0700
commitc5d877a934e793947eb0140ad3b42a6988fe593d (patch)
treebb3cdc037418867473128e91b5b73f0393066926 /src/rebar_app_installer.erl
parent961c95b419ca0aa1e1c8ff6520450fe8e3368de5 (diff)
Renamed app_installer to otp_app.
Added compile check for app name. Added compile check for app modules --HG-- rename : src/rebar_app_installer.erl => src/rebar_otp_app.erl
Diffstat (limited to 'src/rebar_app_installer.erl')
-rw-r--r--src/rebar_app_installer.erl90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/rebar_app_installer.erl b/src/rebar_app_installer.erl
deleted file mode 100644
index e860d6a..0000000
--- a/src/rebar_app_installer.erl
+++ /dev/null
@@ -1,90 +0,0 @@
-%% -------------------------------------------------------------------
-%%
-%% rebar: Erlang Build Tools
-%%
-%% Copyright (c) 2009 Dave Smith (dizzyd@dizzyd.com)
-%%
-%% Permission is hereby granted, free of charge, to any person obtaining a copy
-%% of this software and associated documentation files (the "Software"), to deal
-%% in the Software without restriction, including without limitation the rights
-%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-%% copies of the Software, and to permit persons to whom the Software is
-%% furnished to do so, subject to the following conditions:
-%%
-%% The above copyright notice and this permission notice shall be included in
-%% all copies or substantial portions of the Software.
-%%
-%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-%% THE SOFTWARE.
-%% -------------------------------------------------------------------
--module(rebar_app_installer).
-
--export([install/2]).
-
--include("rebar.hrl").
-
-%% ===================================================================
-%% Public API
-%% ===================================================================
-
-install(Config, File) ->
- %% Load the app name and version from the .app file and construct
- %% the app identifier
- {ok, AppName, AppData} = rebar_app_utils:load_app_file(File),
- Vsn = proplists:get_value(vsn, AppData),
- AppId = ?FMT("~s-~s", [AppName, Vsn]),
- ?CONSOLE("Installing: ~s\n", [AppId]),
-
- %% Check the erlang lib directory to see if this app identifier
- %% is already present.
- AppDir = filename:join([code:lib_dir(), AppId]),
- case filelib:is_dir(AppDir) of
- true ->
- %% Already exists -- check for force=1 global flag and only
- %% continue if it's set
- case rebar_config:get_global(force, "0") of
- "0" ->
- ?ERROR("~s already exists. Installation failed.\n", [AppId]),
- ?FAIL;
- "1" ->
- ?WARN("~s already exists, but forcibly overwriting.\n", [AppId])
- end;
- false ->
- ok
- end,
-
- %% Wipe out any previous versions
- ok = rebar_file_utils:rm_rf(AppDir),
-
- %% Re-create target
- ok = rebar_file_utils:mkdir_p(AppDir),
-
- %% By default we copy the ebin, include, src and priv directories
- ok = rebar_file_utils:cp_r(["ebin", "src", "priv", "include"],
- AppDir),
-
- %% Check the config to see if we have any binaries that need to be
- %% linked into the erlang path
- case rebar_config:get_list(Config, app_bin, []) of
- [] ->
- ok;
- List ->
- ok
- end.
-
-
-%% ===================================================================
-%% Internal functions
-%% ===================================================================
-
-install_binaries([], _AppDir, _BinDir) ->
- ok;
-install_binaries([Bin | Rest], AppDir, BinDir) ->
- FqBin = filename:join([Bin, AppDir]),
- rebar_file_utils:ln_sf(FqBin, BinDir),
- install_binaries(Rest, AppDir, BinDir).