diff options
author | Dave Smith <dizzyd@dizzyd.com> | 2010-10-19 14:21:41 -0600 |
---|---|---|
committer | Dave Smith <dizzyd@dizzyd.com> | 2010-10-19 14:21:41 -0600 |
commit | 67d4fbf337d76c10214f642b635b40b4e7c35412 (patch) | |
tree | b2f5d7621f0679715a3cc40be73686a099d4d86d /src | |
parent | 968ef1cc77e13b433c0dcc95055b8e15b42821af (diff) |
Add support for overriding the default name/location of the escript; add support for cleaning generated script file
--HG--
extra : rebase_source : 466f440dcb699e031c5c520d28ee7731b60c535a
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_escripter.erl | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/rebar_escripter.erl b/src/rebar_escripter.erl index ddf0fce..97f70c5 100644 --- a/src/rebar_escripter.erl +++ b/src/rebar_escripter.erl @@ -26,7 +26,8 @@ %% ------------------------------------------------------------------- -module(rebar_escripter). --export([escriptize/2]). +-export([escriptize/2, + clean/2]). -include("rebar.hrl"). @@ -35,10 +36,14 @@ %% =================================================================== escriptize(Config, AppFile) -> - %% Extract the application name from the archive -- this will be be what - %% we call the output script + %% Extract the application name from the archive -- this is the default + %% name of the generated script AppName = rebar_app_utils:app_name(AppFile), + %% Get the output filename for the escript -- this may include dirs + Filename = rebar_config:get_local(Config, escript_name, AppName), + filelib:ensure_dir(Filename), + %% Look for a list of other applications (dependencies) to include %% in the output file. We then use the .app files for each of these %% to pull in all the .beam files. @@ -52,7 +57,7 @@ escriptize(Config, AppFile) -> %% Archive was successfully created. Prefix that binary with our %% header and write to our escript file Script = <<"#!/usr/bin/env escript\n", ZipBin/binary>>, - case file:write_file(AppName, Script) of + case file:write_file(Filename, Script) of ok -> ok; {error, WriteError} -> @@ -65,9 +70,17 @@ escriptize(Config, AppFile) -> end, %% Finally, update executable perms for our script - [] = os:cmd(?FMT("chmod u+x ~p", [AppName])), + [] = os:cmd(?FMT("chmod u+x ~p", [Filename])), ok. +clean(Config, AppFile) -> + %% Extract the application name from the archive -- this is the default + %% name of the generated script + AppName = rebar_app_utils:app_name(AppFile), + + %% Get the output filename for the escript -- this may include dirs + Filename = rebar_config:get_local(Config, escript_name, AppName), + rebar_file_utils:delete_each([Filename]). %% =================================================================== |