Settings.js: support newlines in default values when using variable substitution
This allows, among other things, to correctly support the configuration of defaultPadText in Docker via an environment variable.pull/3851/head
parent
3872690715
commit
79406051fa
|
@ -69,6 +69,7 @@ Available options:
|
||||||
* `DB_PASS`: the password for the database username
|
* `DB_PASS`: the password for the database username
|
||||||
* `DB_CHARSET`: the character set for the tables (only required for MySQL)
|
* `DB_CHARSET`: the character set for the tables (only required for MySQL)
|
||||||
* `DB_FILENAME`: in case `DB_TYPE` is `DirtyDB`, the database filename. Default: `var/dirty.db`
|
* `DB_FILENAME`: in case `DB_TYPE` is `DirtyDB`, the database filename. Default: `var/dirty.db`
|
||||||
|
* `DEFAULT_PAD_TEXT`: The default text of a pad
|
||||||
* `ADMIN_PASSWORD`: the password for the `admin` user (leave unspecified if you do not want to create it)
|
* `ADMIN_PASSWORD`: the password for the `admin` user (leave unspecified if you do not want to create it)
|
||||||
* `USER_PASSWORD`: the password for the first user `user` (leave unspecified if you do not want to create it)
|
* `USER_PASSWORD`: the password for the first user `user` (leave unspecified if you do not want to create it)
|
||||||
* `TRUST_PROXY`: set to `true` if you are using a reverse proxy in front of Etherpad (for example: Traefik for SSL termination via Let's Encrypt). This will affect security and correctness of the logs if not done
|
* `TRUST_PROXY`: set to `true` if you are using a reverse proxy in front of Etherpad (for example: Traefik for SSL termination via Let's Encrypt). This will affect security and correctness of the logs if not done
|
||||||
|
|
|
@ -65,6 +65,10 @@
|
||||||
* "password": "${PASSW}" // if PASSW is not defined would result in password === null
|
* "password": "${PASSW}" // if PASSW is not defined would result in password === null
|
||||||
* "password": "${PASSW:}" // if PASSW is not defined would result in password === ''
|
* "password": "${PASSW:}" // if PASSW is not defined would result in password === ''
|
||||||
*
|
*
|
||||||
|
* 3) if you want to use newlines in the default value of a string parameter,
|
||||||
|
* use "\n" as usual.
|
||||||
|
*
|
||||||
|
* "defaultPadText" : "${DEFAULT_PAD_TEXT}Line 1\nLine 2"
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -159,7 +163,7 @@
|
||||||
/*
|
/*
|
||||||
* The default text of a pad
|
* The default text of a pad
|
||||||
*/
|
*/
|
||||||
"defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n",
|
"defaultPadText" : "${DEFAULT_PAD_TEXT:Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n}",
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default Pad behavior.
|
* Default Pad behavior.
|
||||||
|
|
|
@ -56,6 +56,10 @@
|
||||||
* "password": "${PASSW}" // if PASSW is not defined would result in password === null
|
* "password": "${PASSW}" // if PASSW is not defined would result in password === null
|
||||||
* "password": "${PASSW:}" // if PASSW is not defined would result in password === ''
|
* "password": "${PASSW:}" // if PASSW is not defined would result in password === ''
|
||||||
*
|
*
|
||||||
|
* 3) if you want to use newlines in the default value of a string parameter,
|
||||||
|
* use "\n" as usual.
|
||||||
|
*
|
||||||
|
* "defaultPadText" : "${DEFAULT_PAD_TEXT}Line 1\nLine 2"
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -474,7 +474,7 @@ function lookupEnvironmentVariables(obj) {
|
||||||
* "${ENV_VAR}" or "${ENV_VAR:default_value}")
|
* "${ENV_VAR}" or "${ENV_VAR:default_value}")
|
||||||
*/
|
*/
|
||||||
// MUXATOR 2019-03-21: we could use named capture groups here once we migrate to nodejs v10
|
// MUXATOR 2019-03-21: we could use named capture groups here once we migrate to nodejs v10
|
||||||
const match = value.match(/^\$\{([^:]*)(:(.*))?\}$/);
|
const match = value.match(/^\$\{([^:]*)(:((.|\n)*))?\}$/);
|
||||||
|
|
||||||
if (match === null) {
|
if (match === null) {
|
||||||
// no match: use the value literally, without any substitution
|
// no match: use the value literally, without any substitution
|
||||||
|
|
Loading…
Reference in New Issue