Build main.js
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/37d71c5b Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/37d71c5b Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/37d71c5b Branch: refs/heads/1843-feature-bigcouch Commit: 37d71c5b1b3d6b7f8ff8de45733b386f6748adc3 Parents: 84e6e49 Author: Robert Newson <[email protected]> Authored: Thu Jan 30 15:49:03 2014 +0000 Committer: Robert Newson <[email protected]> Committed: Mon Feb 3 12:54:11 2014 +0000 ---------------------------------------------------------------------- rebar.config | 2 ++ support/build_js.escript | 55 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/37d71c5b/rebar.config ---------------------------------------------------------------------- diff --git a/rebar.config b/rebar.config index 1ae51fd..8960167 100644 --- a/rebar.config +++ b/rebar.config @@ -36,3 +36,5 @@ {lib_dirs, ["src/"]}. {erl_opts, [debug_info]}. + +{post_hooks, [{compile, "escript support/build_js.escript"}]}. http://git-wip-us.apache.org/repos/asf/couchdb/blob/37d71c5b/support/build_js.escript ---------------------------------------------------------------------- diff --git a/support/build_js.escript b/support/build_js.escript new file mode 100644 index 0000000..5050fd6 --- /dev/null +++ b/support/build_js.escript @@ -0,0 +1,55 @@ +%% -*- tab-width: 4;erlang-indent-level: 4;indent-tabs-mode: nil -*- +%% ex: ft=erlang ts=4 sw=4 et + +%% Licensed under the Apache License, Version 2.0 (the "License"); you may not +%% use this file except in compliance with the License. You may obtain a copy of +%% the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +%% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +%% License for the specific language governing permissions and limitations under +%% the License. +%% +%% + +-export([main/1]). + + +main([]) -> + JsFiles = ["share/server/json2.js", + "share/server/filter.js", + "share/server/mimeparse.js", + "share/server/render.js", + "share/server/state.js", + "share/server/util.js", + "share/server/validate.js", + "share/server/views.js", + "share/server/loop.js"], + + CoffeeFiles = ["share/server/json2.js", + "share/server/filter.js", + "share/server/mimeparse.js", + "share/server/render.js", + "share/server/state.js", + "share/server/util.js", + "share/server/validate.js", + "share/server/views.js", + "share/server/coffee-script.js", + "share/server/loop.js"], + + + Concat = fun(Files, To) -> + AccBin = lists:foldl(fun(Path, Acc) -> + {ok, Bin} = file:read_file(Path), + [Bin | Acc] + end, [], Files), + FinalBin = iolist_to_binary(lists:reverse(AccBin)), + file:write_file(To, FinalBin) + end, + + ok = Concat(JsFiles, "share/server/main.js"), + ok = Concat(CoffeeFiles, "share/server/main-coffee.js"), + ok.
