Add "mo" from "https://git.knownelement.com/ExternalVendorCode/mo.git@master"
git-vendor-name: mo git-vendor-dir: vendor/git.knownelement.com/ExternalVendorCode/mo git-vendor-repository: https://git.knownelement.com/ExternalVendorCode/mo.git git-vendor-ref: master
This commit is contained in:
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/ampersand
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/ampersand
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export thing="Works"
|
||||
export template="{{&thing}}"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
21
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/array
generated
vendored
Executable file
21
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/array
generated
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export repo=( "resque" "hub" "rip" )
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{#repo}}
|
||||
<b>{{@key}} - {{.}}</b>
|
||||
{{/repo}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
<b>0 - resque</b>
|
||||
<b>1 - hub</b>
|
||||
<b>2 - rip</b>
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
25
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/assoc-array
generated
vendored
Executable file
25
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/assoc-array
generated
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
declare -A repo
|
||||
# The order of the array elements can be shuffled depending on the version of
|
||||
# Bash. Keeping this to a minimal set and alphabetized seems to help.
|
||||
repo[hub]="Hub"
|
||||
repo[rip]="Rip"
|
||||
export repo
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{#repo}}
|
||||
<b>{{@key}} - {{.}}</b>
|
||||
{{/repo}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
<b>hub - Hub</b>
|
||||
<b>rip - Rip</b>
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/comment
generated
vendored
Executable file
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/comment
generated
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export template="Wor{{!comment}}ks"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
15
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/comment-newline
generated
vendored
Executable file
15
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/comment-newline
generated
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
template() {
|
||||
cat <<EOF
|
||||
<h1>Today{{! ignore me
|
||||
and this can
|
||||
run through multiple
|
||||
lines}}.</h1>
|
||||
EOF
|
||||
}
|
||||
export expected=$'<h1>Today.</h1>\n'
|
||||
|
||||
runTest
|
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/comment-with-spaces
generated
vendored
Executable file
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/comment-with-spaces
generated
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export template="Wor{{! comment }}ks"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/concatenated-variables
generated
vendored
Executable file
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/concatenated-variables
generated
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export thing="Wor"
|
||||
export thing2="ks"
|
||||
export template="{{thing thing2}}"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/delimiters
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/delimiters
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export thing="Works"
|
||||
export template="{{=| |=}}|thing|"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/double-hyphen
generated
vendored
Executable file
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/double-hyphen
generated
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export arguments=(--fail-on-file -- --help)
|
||||
export returnCode=1
|
||||
export template=""
|
||||
export expected=$'ERROR: No such file: --help\n'
|
||||
|
||||
runTest
|
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/double-quote
generated
vendored
Executable file
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/double-quote
generated
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export template='{{"Works"}}'
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
20
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fail-not-set
generated
vendored
Executable file
20
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fail-not-set
generated
vendored
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
unset __NO_SUCH_VAR
|
||||
export POPULATED="words"
|
||||
export EMPTY=""
|
||||
export arguments=(--fail-not-set)
|
||||
export returnCode=1
|
||||
|
||||
template() {
|
||||
cat <<EOF
|
||||
Populated: {{POPULATED}};
|
||||
Empty: {{EMPTY}};
|
||||
Unset: {{__NO_SUCH_VAR}};
|
||||
EOF
|
||||
}
|
||||
export expected=$'ERROR: Environment variable not set: __NO_SUCH_VAR\n'
|
||||
|
||||
runTest
|
13
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fail-on-function
generated
vendored
Executable file
13
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fail-on-function
generated
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
failFunction() {
|
||||
false
|
||||
}
|
||||
export arguments=(--fail-on-function)
|
||||
export returnCode=1
|
||||
export template="Fail on function? {{failFunction}}"
|
||||
export expected=$'ERROR: Function failed with status code 1: "failFunction"\n'
|
||||
|
||||
runTest
|
18
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/false-is-empty-arg
generated
vendored
Executable file
18
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/false-is-empty-arg
generated
vendored
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export USER=j.doe
|
||||
export ADMIN=false
|
||||
export arguments=(--false)
|
||||
template() {
|
||||
cat <<EOF
|
||||
The user {{USER}} exists.
|
||||
{{#ADMIN}}
|
||||
WRONG - should not be an admin.
|
||||
{{/ADMIN}}
|
||||
EOF
|
||||
}
|
||||
export expected=$'The user j.doe exists.\n'
|
||||
|
||||
runTest
|
18
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/false-is-empty-env
generated
vendored
Executable file
18
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/false-is-empty-env
generated
vendored
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export USER=j.doe
|
||||
export ADMIN=false
|
||||
MO_FALSE_IS_EMPTY=yeppers
|
||||
template() {
|
||||
cat <<EOF
|
||||
The user {{USER}} exists.
|
||||
{{#ADMIN}}
|
||||
WRONG - should not be an admin.
|
||||
{{/ADMIN}}
|
||||
EOF
|
||||
}
|
||||
export expected=$'The user j.doe exists.\n'
|
||||
|
||||
runTest
|
16
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/false-list
generated
vendored
Executable file
16
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/false-list
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export person=""
|
||||
template() {
|
||||
cat <<EOF
|
||||
Shown.
|
||||
{{#person}}
|
||||
Never shown!
|
||||
{{/person}}
|
||||
EOF
|
||||
}
|
||||
export expected=$'Shown.\n'
|
||||
|
||||
runTest
|
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/indented-partials.partial
generated
vendored
Normal file
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/indented-partials.partial
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
first line
|
||||
second line
|
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/inline-indentation
generated
vendored
Normal file
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/inline-indentation
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
>
|
||||
>
|
1
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/multi-line-partial.partial
generated
vendored
Normal file
1
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/multi-line-partial.partial
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{{multilineData}}
|
1
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/partial.partial
generated
vendored
Normal file
1
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/partial.partial
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<strong>{{.}}</strong>
|
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/source-multiple-1.vars
generated
vendored
Normal file
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/source-multiple-1.vars
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export A=from1
|
||||
export B=from1
|
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/source-multiple-2.vars
generated
vendored
Normal file
2
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/source-multiple-2.vars
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export B=from2
|
||||
export C=from2
|
5
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/source.vars
generated
vendored
Normal file
5
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/source.vars
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
export VAR=value
|
||||
export ARR=(1 2 3)
|
||||
declare -A ASSOC_ARR
|
||||
# Can not export associative arrays, otherwise they turn into indexed arrays
|
||||
ASSOC_ARR=([a]=AAA [b]=BBB)
|
3
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/standalone-indentation.partial
generated
vendored
Normal file
3
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/fixtures/standalone-indentation.partial
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
|
|
||||
{{content}}
|
||||
|
|
25
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function
generated
vendored
Executable file
25
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function
generated
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export name=Willy
|
||||
wrapped() {
|
||||
# Wrapping 'cat' in a subshell eats the trailing whitespace
|
||||
# The echo adds a newline, which is preserved.
|
||||
echo "<b>$(cat)</b>"
|
||||
}
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{#wrapped}}
|
||||
{{name}} is awesome.
|
||||
{{/wrapped}}
|
||||
... this is the last line.
|
||||
EOF
|
||||
}
|
||||
|
||||
# We don't expect {{name}} to be changed. The function returns whatever content
|
||||
# that should be the result. There is a separate test where the function handles
|
||||
# parsing mustache tags.
|
||||
export expected=$'<b> {{name}} is awesome.</b>\n... this is the last line.\n'
|
||||
|
||||
runTest
|
16
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-alternate-delimiters
generated
vendored
Executable file
16
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-alternate-delimiters
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export planet=Earth
|
||||
lambda() {
|
||||
local content
|
||||
|
||||
content=$(cat)
|
||||
mo::parse content "$content{{planet}} => |planet|$content"
|
||||
echo -n "$content"
|
||||
}
|
||||
export template="{{= | | =}}<|#lambda|-|/lambda|>"
|
||||
export expected="<-{{planet}} => Earth->"
|
||||
|
||||
runTest
|
35
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-args
generated
vendored
Executable file
35
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-args
generated
vendored
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export name=Willy
|
||||
MO_ALLOW_FUNCTION_ARGUMENTS=true
|
||||
|
||||
pipeTo() {
|
||||
cat | "$1"
|
||||
}
|
||||
|
||||
testArgs() {
|
||||
printf "%d" "$#"
|
||||
|
||||
# Display all arguments
|
||||
printf " %q" ${@+"$@"}
|
||||
}
|
||||
template() {
|
||||
cat <<EOF
|
||||
No args: {{testArgs}} - done
|
||||
One arg: {{testArgs 'one'}} - done
|
||||
Getting name in a string: {{testArgs {"The name is " name}}} - done
|
||||
Reverse this: {{#pipeTo "rev"}}abcde{{/pipeTo "rev"}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
No args: 0 '' - done
|
||||
One arg: 1 one - done
|
||||
Getting name in a string: 1 The\ name\ is\ Willy - done
|
||||
Reverse this: edcba
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
42
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-args-read
generated
vendored
Executable file
42
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-args-read
generated
vendored
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
testArgs() {
|
||||
local args
|
||||
# shellcheck disable=SC2031
|
||||
args=$(declare -p MO_FUNCTION_ARGS)
|
||||
|
||||
# The output from declare -p could look like these
|
||||
# declare -a MO_FUNCTION_ARGS=([0]="one")
|
||||
# declare -ax MO_FUNCTION_ARGS='([0]="one")'
|
||||
# Trim leading declare statement and variable name
|
||||
args="${args#*=}"
|
||||
|
||||
# If there are any quotes, remove them. The function arguments will always
|
||||
# be an array.
|
||||
if [[ "${args:0:1}" == "'" ]]; then
|
||||
args=${args#\'}
|
||||
args=${args%\'}
|
||||
fi
|
||||
|
||||
echo -n "$args"
|
||||
}
|
||||
template() {
|
||||
cat <<EOF
|
||||
No args: {{testArgs}} - done
|
||||
One arg: {{testArgs 'one'}} - done
|
||||
Multiple arguments: {{testArgs 'aa' 'bb' 'cc' 'x' "" '!' '{[_.|' }} - done
|
||||
Evil: {{testArgs bla; cat /etc/issue}} - done
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
No args: () - done
|
||||
One arg: ([0]="one") - done
|
||||
Multiple arguments: ([0]="aa" [1]="bb" [2]="cc" [3]="x" [4]="" [5]="!" [6]="{[_.|") - done
|
||||
Evil: ([0]="" [1]="" [2]="") - done
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
28
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-with-more-parsing
generated
vendored
Executable file
28
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/function-with-more-parsing
generated
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export name=Willy
|
||||
wrapped() {
|
||||
local content
|
||||
|
||||
# Wrapping 'cat' in a subshell eats the trailing whitespace
|
||||
content="<b>$(cat)</b>"
|
||||
|
||||
# Parse the content using mustache
|
||||
mo::parse content "$content"
|
||||
|
||||
# The echo adds a newline, which is preserved.
|
||||
echo "$content"
|
||||
}
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{#wrapped}}
|
||||
{{name}} is awesome.
|
||||
{{/wrapped}}
|
||||
... this is the last line.
|
||||
EOF
|
||||
}
|
||||
export expected=$'<b> Willy is awesome.</b>\n... this is the last line.\n'
|
||||
|
||||
runTest
|
28
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/globals-in-loop
generated
vendored
Executable file
28
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/globals-in-loop
generated
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export STR=abc
|
||||
export DATA=(111 222)
|
||||
template() {
|
||||
cat <<EOF
|
||||
Issue #7
|
||||
{{STR}}
|
||||
{{#DATA}}
|
||||
Item: {{.}}
|
||||
String: {{STR}}
|
||||
{{/DATA}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
Issue #7
|
||||
abc
|
||||
Item: 111
|
||||
String: abc
|
||||
Item: 222
|
||||
String: abc
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
101
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/help
generated
vendored
Executable file
101
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/help
generated
vendored
Executable file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export arguments=(--help)
|
||||
expected() {
|
||||
cat <<'EOF'
|
||||
Mo is a mustache template rendering software written in bash. It inserts
|
||||
environment variables into templates.
|
||||
|
||||
Simply put, mo will change {{VARIABLE}} into the value of that
|
||||
environment variable. You can use {{#VARIABLE}}content{{/VARIABLE}} to
|
||||
conditionally display content or iterate over the values of an array.
|
||||
|
||||
Learn more about mustache templates at https://mustache.github.io/
|
||||
|
||||
Simple usage:
|
||||
|
||||
mo [OPTIONS] filenames...
|
||||
|
||||
Options:
|
||||
|
||||
--allow-function-arguments
|
||||
Permit functions to be called with additional arguments. Otherwise,
|
||||
the only way to get access to the arguments is to use the
|
||||
MO_FUNCTION_ARGS environment variable.
|
||||
-d, --debug
|
||||
Enable debug logging to stderr.
|
||||
-u, --fail-not-set
|
||||
Fail upon expansion of an unset variable. Will silently ignore by
|
||||
default. Alternately, set MO_FAIL_ON_UNSET to a non-empty value.
|
||||
-x, --fail-on-function
|
||||
Fail when a function returns a non-zero status code instead of
|
||||
silently ignoring it. Alternately, set MO_FAIL_ON_FUNCTION to a
|
||||
non-empty value.
|
||||
-f, --fail-on-file
|
||||
Fail when a file (from command-line or partial) does not exist.
|
||||
Alternately, set MO_FAIL_ON_FILE to a non-empty value.
|
||||
-e, --false
|
||||
Treat the string "false" as empty for conditionals. Alternately,
|
||||
set MO_FALSE_IS_EMPTY to a non-empty value.
|
||||
-h, --help
|
||||
This message.
|
||||
-s=FILE, --source=FILE
|
||||
Load FILE into the environment before processing templates.
|
||||
Can be used multiple times. The file must be a valid shell script
|
||||
and should only contain variable assignments.
|
||||
-o=DELIM, --open=DELIM
|
||||
Set the opening delimiter. Default is "{{".
|
||||
-c=DELIM, --close=DELIM
|
||||
Set the closing delimiter. Default is "}}".
|
||||
-- Indicate the end of options. All arguments after this will be
|
||||
treated as filenames only. Use when filenames may start with
|
||||
hyphens.
|
||||
|
||||
Mo uses the following environment variables:
|
||||
|
||||
MO_ALLOW_FUNCTION_ARGUMENTS - When set to a non-empty value, this allows
|
||||
functions referenced in templates to receive additional options and
|
||||
arguments.
|
||||
MO_CLOSE_DELIMITER - The string used when closing a tag. Defaults to "}}".
|
||||
Used internally.
|
||||
MO_CLOSE_DELIMITER_DEFAULT - The default value of MO_CLOSE_DELIMITER. Used
|
||||
when resetting the close delimiter, such as when parsing a partial.
|
||||
MO_CURRENT - Variable name to use for ".".
|
||||
MO_DEBUG - When set to a non-empty value, additional debug information is
|
||||
written to stderr.
|
||||
MO_FUNCTION_ARGS - Arguments passed to the function.
|
||||
MO_FAIL_ON_FILE - If a filename from the command-line is missing or a
|
||||
partial does not exist, abort with an error.
|
||||
MO_FAIL_ON_FUNCTION - If a function returns a non-zero status code, abort
|
||||
with an error.
|
||||
MO_FAIL_ON_UNSET - When set to a non-empty value, expansion of an unset env
|
||||
variable will be aborted with an error.
|
||||
MO_FALSE_IS_EMPTY - When set to a non-empty value, the string "false" will
|
||||
be treated as an empty value for the purposes of conditionals.
|
||||
MO_OPEN_DELIMITER - The string used when opening a tag. Defaults to "{{".
|
||||
Used internally.
|
||||
MO_OPEN_DELIMITER_DEFAULT - The default value of MO_OPEN_DELIMITER. Used
|
||||
when resetting the open delimiter, such as when parsing a partial.
|
||||
MO_ORIGINAL_COMMAND - Used to find the `mo` program in order to generate a
|
||||
help message.
|
||||
MO_PARSED - Content that has made it through the template engine.
|
||||
MO_STANDALONE_CONTENT - The unparsed content that preceeded the current tag.
|
||||
When a standalone tag is encountered, this is checked to see if it only
|
||||
contains whitespace. If this and the whitespace condition after a tag is
|
||||
met, then this will be reset to $'\n'.
|
||||
MO_UNPARSED - Template content yet to make it through the parser.
|
||||
|
||||
Mo is under a MIT style licence with an additional non-advertising clause.
|
||||
See LICENSE.md for the full text.
|
||||
|
||||
This is open source! Please feel free to contribute.
|
||||
|
||||
https://github.com/tests-always-included/mo
|
||||
|
||||
MO_VERSION=3.0.7
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
56
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/indented-partials
generated
vendored
Executable file
56
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/indented-partials
generated
vendored
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export thisIsTrue=true
|
||||
template() {
|
||||
cat <<EOF
|
||||
With spacing
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
|
||||
Without spacing
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
|
||||
With text
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
text
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
|
||||
In a conditional
|
||||
{{#thisIsTrue}}
|
||||
{{> fixtures/indented-partials.partial}}
|
||||
{{/thisIsTrue}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
With spacing
|
||||
first line
|
||||
second line
|
||||
|
||||
first line
|
||||
second line
|
||||
|
||||
Without spacing
|
||||
first line
|
||||
second line
|
||||
first line
|
||||
second line
|
||||
|
||||
With text
|
||||
first line
|
||||
second line
|
||||
text
|
||||
first line
|
||||
second line
|
||||
|
||||
In a conditional
|
||||
first line
|
||||
second line
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
19
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/inline-indentation
generated
vendored
Executable file
19
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/inline-indentation
generated
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export data="|"
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{data}} {{> fixtures/inline-indentation}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
| >
|
||||
>
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/internal-whitespace
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/internal-whitespace
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export boolean=true
|
||||
export template=$' | {{#boolean}} {{! Important Whitespace }}\n {{/boolean}} | \n'
|
||||
export expected=$' | \n | \n'
|
||||
|
||||
runTest
|
11
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/invalid-option
generated
vendored
Executable file
11
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/invalid-option
generated
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export person=""
|
||||
export template=""
|
||||
export returnCode=1
|
||||
export arguments=(--something)
|
||||
export expected=$'ERROR: Unknown option: --something (See --help for options)\n'
|
||||
|
||||
runTest
|
18
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/inverted
generated
vendored
Executable file
18
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/inverted
generated
vendored
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export repo=()
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{#repo}}
|
||||
<b>{{.}}</b>
|
||||
{{/repo}}
|
||||
{{^repo}}
|
||||
No repos :(
|
||||
{{/repo}}
|
||||
EOF
|
||||
}
|
||||
export expected=$' No repos :(\n'
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/issue-75
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/issue-75
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export uv
|
||||
export template='{{^uv}}OK{{/uv}}{{#uv}}FAIL{{/uv}}'
|
||||
export expected='OK'
|
||||
|
||||
runTest
|
16
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/list-contexts
generated
vendored
Executable file
16
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/list-contexts
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export a=foo
|
||||
export b=wrong
|
||||
declare -A sec
|
||||
sec=([b]="bar")
|
||||
export sec
|
||||
declare -A c
|
||||
c=([d]="baz")
|
||||
export c
|
||||
export template="{{#sec}}{{a}} {{b}} {{c.d}}{{/sec}}"
|
||||
export expected="foo bar baz"
|
||||
|
||||
runTest
|
24
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/miss
generated
vendored
Executable file
24
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/miss
generated
vendored
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export name="Chris"
|
||||
export company="<b>GitHub</b>"
|
||||
template() {
|
||||
cat <<EOF
|
||||
* .{{name}}.
|
||||
* .{{age}}.
|
||||
* .{{company}}.
|
||||
* .{{{company}}}.
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
* .Chris.
|
||||
* ..
|
||||
* .<b>GitHub</b>.
|
||||
* .<b>GitHub</b>.
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
35
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/multi-line-partial
generated
vendored
Executable file
35
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/multi-line-partial
generated
vendored
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export multilineData=$'line 1\nline 2'
|
||||
template() {
|
||||
cat <<EOF
|
||||
Partial:
|
||||
|
||||
{{> fixtures/multi-line-partial.partial}}
|
||||
|
||||
Indented:
|
||||
|
||||
{{> fixtures/multi-line-partial.partial}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
Partial:
|
||||
|
||||
line 1
|
||||
line 2
|
||||
|
||||
Indented:
|
||||
|
||||
line 1
|
||||
line 2
|
||||
EOF
|
||||
# This one looks odd, but if you check the spec spec/specs/partials.yaml,
|
||||
# name "Standalone Indentation" (mirrors "standalone-indentation" in
|
||||
# tests/), then the spec clearly shows that the indentation is applied
|
||||
# before rendering.
|
||||
}
|
||||
|
||||
runTest
|
33
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/mush
generated
vendored
Executable file
33
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/mush
generated
vendored
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export USER=jwerle
|
||||
export GENDER=male
|
||||
export THING=apple
|
||||
export COLOR=red
|
||||
export PERSON=tobi
|
||||
export ADJECTIVE=cool
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{! this is a comment }}
|
||||
|
||||
{{USER}} is {{GENDER}}
|
||||
{{THING}} is {{COLOR}}
|
||||
{{PERSON}} is {{ADJECTIVE}}
|
||||
{{USER}} is friends with {{PERSON}}
|
||||
{{var}} {{value}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
|
||||
jwerle is male
|
||||
apple is red
|
||||
tobi is cool
|
||||
jwerle is friends with tobi
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/no-content
generated
vendored
Executable file
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/no-content
generated
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export template="Works"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
22
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/partial
generated
vendored
Executable file
22
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/partial
generated
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export names=( "Tyler" "Abc" )
|
||||
template() {
|
||||
cat <<EOF
|
||||
<h2>Names</h2>
|
||||
{{#names}}
|
||||
{{> fixtures/partial.partial}}
|
||||
{{/names}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
<h2>Names</h2>
|
||||
<strong>Tyler</strong>
|
||||
<strong>Abc</strong>
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/partial-bad-file
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/partial-bad-file
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
# This file intentionally does not exist
|
||||
export template="{{>fixtures/partial-bad-file.partial}}"
|
||||
export expected=""
|
||||
|
||||
runTest
|
19
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/partial-missing
generated
vendored
Executable file
19
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/partial-missing
generated
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export returnCode=1
|
||||
export arguments=(--fail-on-file)
|
||||
export person=""
|
||||
template() {
|
||||
cat <<EOF
|
||||
Won't be there: {{> fixtures/partial-missing.partial}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
ERROR: No such file: partial-missing.partial
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/single-quote
generated
vendored
Executable file
8
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/single-quote
generated
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export template="{{'Works'}}"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/single-variable-replacement
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/single-variable-replacement
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export thing="Works"
|
||||
export template="{{thing}}"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
25
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source
generated
vendored
Executable file
25
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source
generated
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export arguments=(--source=fixtures/source.vars)
|
||||
template() {
|
||||
cat <<EOF
|
||||
{{VAR}}
|
||||
{{#ARR}}
|
||||
* {{.}}
|
||||
{{/ARR}}
|
||||
{{ASSOC_ARR.a}} {{ASSOC_ARR.b}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
value
|
||||
* 1
|
||||
* 2
|
||||
* 3
|
||||
AAA BBB
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source-bad-file
generated
vendored
Executable file
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source-bad-file
generated
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export arguments=(--source=invalid)
|
||||
export returnCode=1
|
||||
export template="Do not display this"
|
||||
export expected=$'No such file: invalid\n'
|
||||
|
||||
runTest
|
21
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source-multiple
generated
vendored
Executable file
21
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source-multiple
generated
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export arguments=(--source=fixtures/source-multiple-1.vars --source=fixtures/source-multiple-2.vars)
|
||||
template() {
|
||||
cat <<EOF
|
||||
A: {{A}}
|
||||
B: {{B}}
|
||||
C: {{C}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
A: from1
|
||||
B: from2
|
||||
C: from2
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source-no-file
generated
vendored
Executable file
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/source-no-file
generated
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export arguments=(--source=)
|
||||
export returnCode=1
|
||||
export template="Do not display this"
|
||||
export expected=$'No such file: \n'
|
||||
|
||||
runTest
|
24
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/standalone-indentation
generated
vendored
Executable file
24
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/standalone-indentation
generated
vendored
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export content=$'<\n->'
|
||||
template() {
|
||||
cat <<'EOF'
|
||||
\
|
||||
{{>fixtures/standalone-indentation.partial}}
|
||||
/
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<'EOF'
|
||||
\
|
||||
|
|
||||
<
|
||||
->
|
||||
|
|
||||
/
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/triple-brace
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/triple-brace
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export thing="Works"
|
||||
export template="{{{thing}}}"
|
||||
export expected="Works"
|
||||
|
||||
runTest
|
26
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/typical
generated
vendored
Executable file
26
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/typical
generated
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export NAME="Chris"
|
||||
export VALUE=10000
|
||||
export TAXED_VALUE=6000
|
||||
export IN_CA=true
|
||||
template() {
|
||||
cat <<EOF
|
||||
Hello {{NAME}}
|
||||
You have just won {{VALUE}} dollars!
|
||||
{{#IN_CA}}
|
||||
Well, {{TAXED_VALUE}} dollars, after taxes.
|
||||
{{/IN_CA}}
|
||||
EOF
|
||||
}
|
||||
expected() {
|
||||
cat <<EOF
|
||||
Hello Chris
|
||||
You have just won 10000 dollars!
|
||||
Well, 6000 dollars, after taxes.
|
||||
EOF
|
||||
}
|
||||
|
||||
runTest
|
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/unbound-variable
generated
vendored
Executable file
10
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/unbound-variable
generated
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
declare -A a
|
||||
export a=()
|
||||
export template="o{{#a.b}}WRONG{{/a.b}}k"
|
||||
export expected="ok"
|
||||
|
||||
runTest
|
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/variable
generated
vendored
Executable file
9
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/variable
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export foo=bar
|
||||
export template="{{#foo}}{{.}} is {{foo}}{{/foo}}"
|
||||
export expected="bar is bar"
|
||||
|
||||
runTest
|
53
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/variable-braces-and-parenthesis
generated
vendored
Executable file
53
vendor/git.knownelement.com/ExternalVendorCode/mo/tests/variable-braces-and-parenthesis
generated
vendored
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
cd "${0%/*}" || exit 1
|
||||
. ../run-tests
|
||||
|
||||
export array=("wrong0" "item1" "wrong2")
|
||||
export index=1
|
||||
|
||||
# Example #8 is weird because of how the variable name is parsed. Considering
|
||||
# it's an edge case when a user probably has a bug in a template, I think we're
|
||||
# good leaving it as-is until a bug report is filed.
|
||||
|
||||
template() {
|
||||
cat <<'EOF'
|
||||
Starting point:
|
||||
1 "{{ array.1 }}" = "item1"
|
||||
|
||||
Whole expression:
|
||||
2 "{{ {'array.' index} }}" = "array.1"
|
||||
3 "{{ ('array.' index) }}" = "item1"
|
||||
|
||||
Partial expression:
|
||||
4 "{{ 'array.' {index} }}" = "array.1"
|
||||
5 "{{ 'array.' (index) }}" = "array."
|
||||
|
||||
Combined:
|
||||
6 "{{ {'array.' {index}} }}" = "array.1"
|
||||
7 "{{ {'array.' (index)} }}" = "array."
|
||||
8 "{{ ('array.' (index)) }}" = "wrong0,item1,wrong2"
|
||||
9 "{{ ('array.' {index}) }}" = "item1"
|
||||
EOF
|
||||
}
|
||||
|
||||
expected() {
|
||||
cat <<'EOF'
|
||||
Starting point:
|
||||
1 "item1" = "item1"
|
||||
|
||||
Whole expression:
|
||||
2 "array.1" = "array.1"
|
||||
3 "item1" = "item1"
|
||||
|
||||
Partial expression:
|
||||
4 "array.1" = "array.1"
|
||||
5 "array." = "array."
|
||||
|
||||
Combined:
|
||||
6 "array.1" = "array.1"
|
||||
7 "array." = "array."
|
||||
8 "wrong0,item1,wrong2" = "wrong0,item1,wrong2"
|
||||
9 "item1" = "item1"
|
||||
EOF
|
||||
}
|
||||
runTest
|
Reference in New Issue
Block a user