Browse Source

Document PROJECT_ENV usage with/without file

LH: I have added the example without a separate file and
tweaked the wording a bit.
Alexander Clouter 7 years ago
parent
commit
acad32896e
1 changed files with 36 additions and 0 deletions
  1. 36 0
      doc/src/guide/app.asciidoc

+ 36 - 0
doc/src/guide/app.asciidoc

@@ -164,6 +164,42 @@ Any space before and after the value is dropped.
 xref:deps[Dependencies] are covered in details in
 the next chapter.
 
+==== Application environment
+
+The `PROJECT_ENV` variable is used to set the application
+environment:
+
+[source,make]
+----
+define PROJECT_ENV
+[
+  {chips, [currysauce,{mushypeas,false}]},
+  {pizza, [{size,large},{toppings,[anchovies]}]}
+]
+endef
+----
+
+If you have a large set of environment variables, you may find it
+easier to use a separate file. Do this by including the following
+in your Makefile:
+
+[source,make]
+----
+PROJECT_ENV_FILE = src/env.src
+PROJECT_ENV = $(subst \n,$(newline),$(shell cat $(PROJECT_ENV_FILE) | sed -e 's/$$/\\n/;'))
+ebin/$(PROJECT).app:: $(PROJECT_ENV_FILE)
+----
+
+The file has the same contents as the `PROJECT_ENV` variable:
+
+[source,erlang]
+----
+[
+  {chips, [currysauce,{mushypeas,false}]},
+  {pizza, [{size,large},{toppings,[anchovies]}]}
+]
+----
+
 ==== Legacy method
 
 The 'src/$(PROJECT).app.src' file is a legacy method of