Build with rebar
Project: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/commit/fe81abc1 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/tree/fe81abc1 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/diff/fe81abc1 Branch: refs/heads/import Commit: fe81abc1d51befc1fe97921fc8421697a549d661 Parents: 4ab522e Author: Robert Newson <[email protected]> Authored: Wed Dec 18 14:04:59 2013 +0000 Committer: Paul J. Davis <[email protected]> Committed: Fri Jan 17 13:36:18 2014 -0800 ---------------------------------------------------------------------- .gitignore | 1 - Makefile.am | 56 -------------------------------------- README.md | 16 ----------- src/chttpd.app.src | 2 +- src/chttpd_view.erl | 71 ++++++++++++++++++++++++------------------------ 5 files changed, 37 insertions(+), 109 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/fe81abc1/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ba4df8d..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -ebin/* \ No newline at end of file http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/fe81abc1/Makefile.am ---------------------------------------------------------------------- diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index c785968..0000000 --- a/Makefile.am +++ /dev/null @@ -1,56 +0,0 @@ -## 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. - -chttpdebindir = $(localerlanglibdir)/chttpd/ebin - -chttpdebin_DATA = $(compiled_files) - -source_files = \ - src/chttpd.app.src \ - src/chttpd.erl \ - src/chttpd_app.erl \ - src/chttpd_config_listener.erl \ - src/chttpd_db.erl \ - src/chttpd_external.erl \ - src/chttpd_misc.erl \ - src/chttpd_rewrite.erl \ - src/chttpd_show.erl \ - src/chttpd_sup.erl \ - src/chttpd_view.erl - -compiled_files = \ - ebin/chttpd.app \ - ebin/chttpd.beam \ - ebin/chttpd_app.beam \ - ebin/chttpd_config_listener.beam \ - ebin/chttpd_db.beam \ - ebin/chttpd_external.beam \ - ebin/chttpd_misc.beam \ - ebin/chttpd_rewrite.beam \ - ebin/chttpd_show.beam \ - ebin/chttpd_sup.beam - -# Conflicts in couch_db.hrl prevent us from building these -# until after we merge the couch application -# ebin/chttpd_view.beam - - -EXTRA_DIST = $(source_files) -CLEANFILES = $(compiled_files) - -ebin/%.app: src/%.app.src - @mkdir -p ebin/ - sed -e "s|%version%|@version@|g" < $< > $@ - -ebin/%.beam: src/%.erl - @mkdir -p ebin/ - $(ERLC) -Wall -I$(top_srcdir)/src -o ebin/ $(ERLC_FLAGS) $< http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/fe81abc1/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md deleted file mode 100644 index 784bedd..0000000 --- a/README.md +++ /dev/null @@ -1,16 +0,0 @@ -## chttpd - -chttpd is a cluster-aware http layer for [CouchDB][1]. It is used in [BigCouch][2] as the http front-end. - -### License -[Apache 2.0][3] - -### Contact - * [http://cloudant.com][4] - * [[email protected]][5] - -[1]: http://couchdb.apache.org -[2]: http://github.com/cloudant/bigcouch -[3]: http://www.apache.org/licenses/LICENSE-2.0.html -[4]: http://cloudant.com -[5]: mailto:[email protected] http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/fe81abc1/src/chttpd.app.src ---------------------------------------------------------------------- diff --git a/src/chttpd.app.src b/src/chttpd.app.src index d841f6c..9ab91c8 100644 --- a/src/chttpd.app.src +++ b/src/chttpd.app.src @@ -12,7 +12,7 @@ {application, chttpd, [ {description, "HTTP interface for CouchDB cluster"}, - {vsn, "%version%"}, + {vsn, git}, {modules, [ chttpd, chttpd_app, http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/fe81abc1/src/chttpd_view.erl ---------------------------------------------------------------------- diff --git a/src/chttpd_view.erl b/src/chttpd_view.erl index 2c64dda..85b88a3 100644 --- a/src/chttpd_view.erl +++ b/src/chttpd_view.erl @@ -12,6 +12,7 @@ -module(chttpd_view). -include_lib("couch/include/couch_db.hrl"). +-include_lib("couch_mrview/include/couch_mrview.hrl"). -export([handle_view_req/3, handle_temp_view_req/2, get_reduce_type/1, parse_view_params/3, view_group_etag/2, view_group_etag/3, @@ -91,11 +92,11 @@ view_callback({error, Reason}, {_, Resp}) -> extract_view_type(_ViewName, [], _IsReduce) -> throw({not_found, missing_named_view}); extract_view_type(ViewName, [View|Rest], IsReduce) -> - case lists:member(ViewName, [Name || {Name, _} <- View#view.reduce_funs]) of + case lists:member(ViewName, [Name || {Name, _} <- View#mrview.reduce_funs]) of true -> if IsReduce -> reduce; true -> red_map end; false -> - case lists:member(ViewName, View#view.map_names) of + case lists:member(ViewName, View#mrview.map_names) of true -> map; false -> extract_view_type(ViewName, Rest, IsReduce) end @@ -153,7 +154,7 @@ parse_view_params(Req, Keys, ViewType) when not is_list(Req) -> parse_view_params(QueryParams, Keys, ViewType); parse_view_params(QueryParams, Keys, ViewType) -> IsMultiGet = (Keys =/= nil), - Args = #view_query_args{ + Args = #mrargs{ view_type=ViewType, multi_get=IsMultiGet, keys=Keys @@ -162,7 +163,7 @@ parse_view_params(QueryParams, Keys, ViewType) -> validate_view_query(K, V, Args2) end, Args, QueryParams), - GroupLevel = QueryArgs#view_query_args.group_level, + GroupLevel = QueryArgs#mrargs.group_level, case {ViewType, GroupLevel, IsMultiGet} of {reduce, exact, true} -> QueryArgs; @@ -180,9 +181,9 @@ parse_view_params(QueryParams, Keys, ViewType) -> parse_json_view_param({<<"key">>, V}) -> [{start_key, V}, {end_key, V}]; parse_json_view_param({<<"startkey_docid">>, V}) -> - [{start_docid, V}]; + [{start_key_docid, V}]; parse_json_view_param({<<"endkey_docid">>, V}) -> - [{end_docid, V}]; + [{end_key_docid, V}]; parse_json_view_param({<<"startkey">>, V}) -> [{start_key, V}]; parse_json_view_param({<<"endkey">>, V}) -> @@ -224,9 +225,9 @@ parse_view_param("key", Value) -> JsonKey = ?JSON_DECODE(Value), [{start_key, JsonKey}, {end_key, JsonKey}]; parse_view_param("startkey_docid", Value) -> - [{start_docid, ?l2b(Value)}]; + [{start_key_docid, ?l2b(Value)}]; parse_view_param("endkey_docid", Value) -> - [{end_docid, ?l2b(Value)}]; + [{end_key_docid, ?l2b(Value)}]; parse_view_param("startkey", Value) -> [{start_key, ?JSON_DECODE(Value)}]; parse_view_param("endkey", Value) -> @@ -273,64 +274,64 @@ parse_view_param(Key, Value) -> [{extra, {Key, Value}}]. validate_view_query(start_key, Value, Args) -> - case Args#view_query_args.multi_get of + case Args#mrargs.multi_get of true -> Msg = <<"Query parameter `start_key` is " "not compatiible with multi-get">>, throw({query_parse_error, Msg}); _ -> - Args#view_query_args{start_key=Value} + Args#mrargs{start_key=Value} end; -validate_view_query(start_docid, Value, Args) -> - Args#view_query_args{start_docid=Value}; +validate_view_query(start_key_docid, Value, Args) -> + Args#mrargs{start_key_docid=Value}; validate_view_query(end_key, Value, Args) -> - case Args#view_query_args.multi_get of + case Args#mrargs.multi_get of true-> Msg = <<"Query paramter `end_key` is " "not compatibile with multi-get">>, throw({query_parse_error, Msg}); _ -> - Args#view_query_args{end_key=Value} + Args#mrargs{end_key=Value} end; -validate_view_query(end_docid, Value, Args) -> - Args#view_query_args{end_docid=Value}; +validate_view_query(end_key_docid, Value, Args) -> + Args#mrargs{end_key_docid=Value}; validate_view_query(limit, Value, Args) -> - Args#view_query_args{limit=Value}; + Args#mrargs{limit=Value}; validate_view_query(list, Value, Args) -> - Args#view_query_args{list=Value}; + Args#mrargs{list=Value}; validate_view_query(stale, Value, Args) -> - Args#view_query_args{stale=Value}; + Args#mrargs{stale=Value}; validate_view_query(descending, true, Args) -> - case Args#view_query_args.direction of + case Args#mrargs.direction of rev -> Args; % Already reversed fwd -> - Args#view_query_args{ + Args#mrargs{ direction = rev, - start_docid = - reverse_key_default(Args#view_query_args.start_docid), - end_docid = - reverse_key_default(Args#view_query_args.end_docid) + start_key_docid = + reverse_key_default(Args#mrargs.start_key_docid), + end_key_docid = + reverse_key_default(Args#mrargs.end_key_docid) } end; validate_view_query(descending, false, Args) -> Args; % Ignore default condition validate_view_query(skip, Value, Args) -> - Args#view_query_args{skip=Value}; + Args#mrargs{skip=Value}; validate_view_query(group_level, Value, Args) -> - case Args#view_query_args.view_type of + case Args#mrargs.view_type of reduce -> - Args#view_query_args{group_level=Value}; + Args#mrargs{group_level=Value}; _ -> Msg = <<"Invalid URL parameter 'group' or " " 'group_level' for non-reduce view.">>, throw({query_parse_error, Msg}) end; validate_view_query(inclusive_end, Value, Args) -> - Args#view_query_args{inclusive_end=Value}; + Args#mrargs{inclusive_end=Value}; validate_view_query(reduce, false, Args) -> Args; validate_view_query(reduce, _, Args) -> - case Args#view_query_args.view_type of + case Args#mrargs.view_type of map -> Msg = <<"Invalid URL parameter `reduce` for map view.">>, throw({query_parse_error, Msg}); @@ -338,29 +339,29 @@ validate_view_query(reduce, _, Args) -> Args end; validate_view_query(include_docs, true, Args) -> - case Args#view_query_args.view_type of + case Args#mrargs.view_type of reduce -> Msg = <<"Query paramter `include_docs` " "is invalid for reduce views.">>, throw({query_parse_error, Msg}); _ -> - Args#view_query_args{include_docs=true} + Args#mrargs{include_docs=true} end; validate_view_query(include_docs, _Value, Args) -> Args; validate_view_query(conflicts, true, Args) -> - case Args#view_query_args.view_type of + case Args#mrargs.view_type of reduce -> Msg = <<"Query parameter `conflicts` " "is invalid for reduce views.">>, throw({query_parse_error, Msg}); _ -> - Args#view_query_args{extra = [conflicts|Args#view_query_args.extra]} + Args#mrargs{extra = [conflicts|Args#mrargs.extra]} end; validate_view_query(conflicts, _Value, Args) -> Args; validate_view_query(sorted, false, Args) -> - Args#view_query_args{sorted=false}; + Args#mrargs{sorted=false}; validate_view_query(sorted, _Value, Args) -> Args; validate_view_query(extra, _Value, Args) ->
