updated stuffs
This commit is contained in:
parent
aad676ae04
commit
4bdb65b4b8
14 changed files with 127 additions and 39 deletions
47
bin/mo
47
bin/mo
|
@ -11,12 +11,18 @@
|
|||
#/
|
||||
#/ Simple usage:
|
||||
#/
|
||||
#/ mo [--false] [--help] [--source=FILE] filenames...
|
||||
#/ mo [OPTIONS] filenames...
|
||||
#/
|
||||
#/ --fail-not-set - Fail upon expansion of an unset variable.
|
||||
#/ --false - Treat the string "false" as empty for conditionals.
|
||||
#/ --help - This message.
|
||||
#/ --source=FILE - Load FILE into the environment before processing templates.
|
||||
#/ Options:
|
||||
#/
|
||||
#/ -u, --fail-not-set
|
||||
#/ - Fail upon expansion of an unset variable.
|
||||
#/ -e, --false
|
||||
#/ - Treat the string "false" as empty for conditionals.
|
||||
#/ -h, --help
|
||||
#/ - This message.
|
||||
#/ -s=FILE, --source=FILE
|
||||
#/ - Load FILE into the environment before processing templates.
|
||||
#
|
||||
# Mo is under a MIT style licence with an additional non-advertising clause.
|
||||
# See LICENSE.md for the full text.
|
||||
|
@ -32,14 +38,17 @@
|
|||
# --allow-function-arguments
|
||||
# - Permit functions in templates to be called with additional
|
||||
# arguments. This puts template data directly in to the path
|
||||
# of an eval statement. Use with caution.
|
||||
# --fail-not-set - Fail upon expansion of an unset variable. Default behavior
|
||||
# of an eval statement. Use with caution. Not listed in the
|
||||
# help because it only makes sense when mo is sourced.
|
||||
# -u, --fail-not-set
|
||||
# - Fail upon expansion of an unset variable. Default behavior
|
||||
# is to silently ignore and expand into empty string.
|
||||
# --false - Treat "false" as an empty value. You may set the
|
||||
# -e, --false - Treat "false" as an empty value. You may set the
|
||||
# MO_FALSE_IS_EMPTY environment variable instead to a non-empty
|
||||
# value to enable this behavior.
|
||||
# --help - Display a help message.
|
||||
# --source=FILE - Source a file into the environment before processint
|
||||
# -h, --help - Display a help message.
|
||||
# -s=FILE, --source=FILE
|
||||
# - Source a file into the environment before processint
|
||||
# template files.
|
||||
# -- - Used to indicate the end of options. You may optionally
|
||||
# use this when filenames may start with two hyphens.
|
||||
|
@ -53,6 +62,7 @@
|
|||
# options and arguments. This puts the content from the
|
||||
# template directly into an eval statement. Use with
|
||||
# extreme care.
|
||||
# MO_FUNCTION_ARGS - Arguments passed to the function
|
||||
# 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"
|
||||
|
@ -89,18 +99,22 @@ mo() (
|
|||
MO_ALLOW_FUNCTION_ARGUMENTS=true
|
||||
;;
|
||||
|
||||
--fail-not-set)
|
||||
-u | --fail-not-set)
|
||||
# shellcheck disable=SC2030
|
||||
MO_FAIL_ON_UNSET=true
|
||||
;;
|
||||
|
||||
--false)
|
||||
-e | --false)
|
||||
# shellcheck disable=SC2030
|
||||
MO_FALSE_IS_EMPTY=true
|
||||
;;
|
||||
|
||||
--source=*)
|
||||
f2source="${arg#--source=}"
|
||||
-s=* | --source=*)
|
||||
if [[ "$arg" == --source=* ]]; then
|
||||
f2source="${arg#--source=}"
|
||||
else
|
||||
f2source="${arg#-s=}"
|
||||
fi
|
||||
|
||||
if [[ -f "$f2source" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
|
@ -141,16 +155,17 @@ mo() (
|
|||
#
|
||||
# Returns nothing.
|
||||
moCallFunction() {
|
||||
local moArgs
|
||||
local moArgs moFunctionArgs
|
||||
|
||||
moArgs=()
|
||||
moTrimWhitespace moFunctionArgs "$3"
|
||||
|
||||
# shellcheck disable=SC2031
|
||||
if [[ -n "${MO_ALLOW_FUNCTION_ARGUMENTS-}" ]]; then
|
||||
moArgs=$3
|
||||
fi
|
||||
|
||||
echo -n "$2" | eval "$1" "$moArgs"
|
||||
echo -n "$2" | MO_FUNCTION_ARGS="$moFunctionArgs" eval "$1" "$moArgs"
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue