mirror of
https://github.com/tests-always-included/mo.git
synced 2024-12-18 16:27:52 +00:00
Changing how functions are called
Old way: functionName CONTENT argument1 argument2 New way: echo -n "$CONTENT" | functionName argument1 argument2 This follow the Unix style more closely.
This commit is contained in:
parent
e78b15d95b
commit
ad98577c42
@ -3,6 +3,9 @@
|
||||
cd "$(dirname "$0")" # Go to the script's directory
|
||||
|
||||
EVERY_REPO() {
|
||||
# The block contents come in through standard input. Capture it here.
|
||||
content=$(cat)
|
||||
|
||||
echo "# Starting EVERY_REPO"
|
||||
|
||||
# Get list of repos
|
||||
@ -14,7 +17,7 @@ EVERY_REPO() {
|
||||
# It rewrites {{__REPO__.name}} into {{resque.name}}, for instance.
|
||||
# You can prefix your environment variables and do other things as well.
|
||||
|
||||
echo -n "$1" | sed "s/__REPO__/${REPO}/"
|
||||
echo "$content" | sed "s/__REPO__/${REPO}/"
|
||||
|
||||
echo "## Looped one time for repo: $REPO"
|
||||
done
|
||||
|
@ -2,13 +2,17 @@
|
||||
|
||||
cd "$(dirname "$0")"/..
|
||||
|
||||
date-string() { date; }
|
||||
wrapper() { echo -n "*** $1 ***"; }
|
||||
date-string() {
|
||||
date
|
||||
}
|
||||
wrapper() {
|
||||
echo -n "*** $(cat) ***"
|
||||
}
|
||||
|
||||
export IP=127.0.0.1
|
||||
export ALLOWED_HOSTS=( 192.168.0.1 192.168.0.2 192.168.0.3 )
|
||||
|
||||
. mo # Keep in mind this script is executing in the parent directory
|
||||
. ./mo # Keep in mind this script is executing in the parent directory
|
||||
cat <<EOF | mo
|
||||
# {{#wrapper}}OH SO IMPORTANT{{/wrapper}}
|
||||
# This file automatically generated at {{date-string}}
|
||||
|
11
mo
11
mo
@ -141,15 +141,16 @@ mo() (
|
||||
#
|
||||
# Returns nothing.
|
||||
moCallFunction() {
|
||||
local moCommand
|
||||
local moArgs
|
||||
|
||||
moArgs=()
|
||||
|
||||
# shellcheck disable=SC2031
|
||||
if [[ -n "$MO_ALLOW_FUNCTION_ARGUMENTS" ]]; then
|
||||
printf -v moCommand "%q %q %s" "$1" "$2" "$3"
|
||||
eval "$moCommand"
|
||||
else
|
||||
"$1" "$2"
|
||||
moArgs=$3
|
||||
fi
|
||||
|
||||
echo -n "$2" | eval "$1" "$moArgs"
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,16 +2,12 @@ name=Willy
|
||||
MO_ALLOW_FUNCTION_ARGUMENTS=true
|
||||
|
||||
pipeTo() {
|
||||
echo -n "$1" | "$2"
|
||||
cat | "$1"
|
||||
}
|
||||
|
||||
testArgs() {
|
||||
printf "%d" "$#"
|
||||
|
||||
# Remove content. Note that when zero arguments are passed, this
|
||||
# line does nothing and $1 will still be the content.
|
||||
shift
|
||||
|
||||
# Display all arguments
|
||||
printf " %q" "$@"
|
||||
printf " %q" ${@+"$@"}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
No args: 1 '' - done
|
||||
One arg: 2 one - done
|
||||
Getting name in a string: 2 The\ name\ is\ Willy - done
|
||||
No args: 0 '' - done
|
||||
One arg: 1 one - done
|
||||
Getting name in a string: 1 The\ name\ is\ Willy - done
|
||||
Reverse this: edcba
|
||||
|
@ -1,5 +1,5 @@
|
||||
name=Willy
|
||||
wrapped() {
|
||||
# The final newline is eaten by mo
|
||||
echo "<b>$1</b>"
|
||||
# This eats the newline in the content
|
||||
echo "<b>$(cat)</b>"
|
||||
}
|
||||
|
@ -1,2 +1 @@
|
||||
<b> Willy is awesome.
|
||||
</b>... this is the last line.
|
||||
<b> Willy is awesome.</b>... this is the last line.
|
||||
|
Loading…
Reference in New Issue
Block a user