Allow configuration of vendor and module version in the welcome message
-----------------------------------------------------------------------

                 Key: COUCHDB-1285
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1285
             Project: CouchDB
          Issue Type: Improvement
            Reporter: Jan Lehnardt


The patch below allows to configure vendor and module version information into 
the GET / welcome message.

E.g.

  [vendor]
  name = refuge
  version = 2.0.0
  
  [modules]
  geocouch = 1.2.1

would produce:

  
{"couchdb":"Welcome","version":"1.2.0","refuge":"2.0.0","modules":{"geocouch":"1.2.1"}}

--

--- a/src/couchdb/couch_httpd_misc_handlers.erl
+++ b/src/couchdb/couch_httpd_misc_handlers.erl
@@ -30,9 +30,23 @@
 % httpd global handlers
 
 handle_welcome_req(#httpd{method='GET'}=Req, WelcomeMessage) ->
+    Vendor = case couch_config:get("vendor") of
+      [] -> [];
+      Vendor1 -> [{
+        proplists:get_value("name", Vendor1),
+        ?l2b(proplists:get_value("version", Vendor1))
+      }]
+    end,
+
+    Modules = lists:map(fun({Key, Value}) ->
+      {Key, ?l2b(Value)}
+    end, couch_config:get("modules")),
+
     send_json(Req, {[
         {couchdb, WelcomeMessage},
-        {version, list_to_binary(couch_server:get_version())}
+        {version, list_to_binary(couch_server:get_version())}]
+        ++ Vendor
+        ++ [{modules, {Modules}}
     ]});
 handle_welcome_req(Req, _) ->
     send_method_not_allowed(Req, "GET,HEAD").
-- 


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to