You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2020/08/04 11:21:00 UTC

[couchdb] 01/01: Optionally add a key manager application as a dependency

This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch aegis_key_manager_app
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 514af2491a6fd8d4b6e961ccab7adf9c9fbcd054
Author: Robert Newson <rn...@apache.org>
AuthorDate: Tue Aug 4 12:18:40 2020 +0100

    Optionally add a key manager application as a dependency
---
 src/aegis/rebar.config.script                      |  9 ++++++++-
 .../src/{aegis.app.src => aegis.app.src.script}    | 23 +++++++++++++++-------
 2 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/src/aegis/rebar.config.script b/src/aegis/rebar.config.script
index ef148bf..81ea517 100644
--- a/src/aegis/rebar.config.script
+++ b/src/aegis/rebar.config.script
@@ -26,10 +26,17 @@ AegisKeyManager = case lists:keyfind(aegis_key_manager, 1, CouchConfig) of
         aegis_noop_key_manager
 end,
 
+AegisKeyManagerOpt = case lists:keyfind(aegis_key_manager_app, 1, CouchConfig) of
+    {aegis_key_manager_app, AppName} when AppName /= "" ->
+        [{d, 'AEGIS_KEY_MANAGER_APP', list_to_atom(AppName)}];
+    _ ->
+        []
+end,
+
 CurrentOpts = case lists:keyfind(erl_opts, 1, CONFIG) of
     {erl_opts, Opts} -> Opts;
     false -> []
 end,
 
-AegisOpts = {d, 'AEGIS_KEY_MANAGER', AegisKeyManager},
+AegisOpts = AegisKeyManagerOpt ++ [{d, 'AEGIS_KEY_MANAGER', AegisKeyManager}],
 lists:keystore(erl_opts, 1, CONFIG, {erl_opts, [AegisOpts | CurrentOpts]}).
diff --git a/src/aegis/src/aegis.app.src b/src/aegis/src/aegis.app.src.script
similarity index 78%
rename from src/aegis/src/aegis.app.src
rename to src/aegis/src/aegis.app.src.script
index deb1526..3d6b842 100644
--- a/src/aegis/src/aegis.app.src
+++ b/src/aegis/src/aegis.app.src.script
@@ -10,6 +10,21 @@
 % License for the specific language governing permissions and limitations under
 % the License.
 
+AegisKeyManagerApp = case os:getenv("AEGIS_KEY_MANAGER_APP") of
+    false -> [];
+    AppName -> [AppName]
+end.
+
+BaseApplications = [
+    kernel,
+    stdlib,
+    crypto,
+    couch_log,
+    erlfdb
+].
+
+Applications = AegisKeyManagerApp ++ BaseApplications.
+
 {application, aegis,
  [
   {description, "If it's good enough for Zeus, it's good enough for CouchDB"},
@@ -18,13 +33,7 @@
   {registered, [
     aegis_server
   ]},
-  {applications,
-   [kernel,
-    stdlib,
-    crypto,
-    couch_log,
-    erlfdb
-   ]},
+  {applications, Applications},
   {env,[]},
   {modules, []},
   {maintainers, []},