mirror of
https://github.com/tests-always-included/mo.git
synced 2024-12-18 16:27:52 +00:00
Move file loading to a separate function
This commit is contained in:
parent
7a271b58f6
commit
b097733ffd
25
mo
25
mo
@ -104,8 +104,7 @@ mustache-parse() {
|
|||||||
# Execute in subshell to preserve current cwd
|
# Execute in subshell to preserve current cwd
|
||||||
(
|
(
|
||||||
cd "$(dirname "$MUSTACHE_TAG")"
|
cd "$(dirname "$MUSTACHE_TAG")"
|
||||||
MUSTACHE_TAG=$(basename "$MUSTACHE_TAG")
|
mustache-load-file MUSTACHE_TAG "${MUSTACHE_TAG##*/}"
|
||||||
MUSTACHE_TAG=$(cat "$MUSTACHE_TAG" 2>/dev/null)
|
|
||||||
mustache-parse MUSTACHE_TAG "$MUSTACHE_TAG" "" "$MUSTACHE_CURRENT"
|
mustache-parse MUSTACHE_TAG "$MUSTACHE_TAG" "" "$MUSTACHE_CURRENT"
|
||||||
echo -n $MUSTACHE_TAG
|
echo -n $MUSTACHE_TAG
|
||||||
)
|
)
|
||||||
@ -339,18 +338,34 @@ mustache-get-content() {
|
|||||||
CONTENT=""
|
CONTENT=""
|
||||||
|
|
||||||
for FILENAME in ${1+"$@"}; do
|
for FILENAME in ${1+"$@"}; do
|
||||||
|
# This is so relative paths work from inside template files
|
||||||
CONTENT="$CONTENT"'{{>'"$FILENAME"'}}'
|
CONTENT="$CONTENT"'{{>'"$FILENAME"'}}'
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
# Workaround to avoid newlines being gobbled by the subshell
|
mustache-load-file CONTENT /dev/stdin
|
||||||
CONTENT="$(cat -; echo .)"
|
|
||||||
CONTENT=${CONTENT:0: -1}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local "$TARGET" && mustache-indirect "$TARGET" "$CONTENT"
|
local "$TARGET" && mustache-indirect "$TARGET" "$CONTENT"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Read a file
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# $1: Variable name to receive the file's content
|
||||||
|
# $2: Filename to load
|
||||||
|
mustache-load-file() {
|
||||||
|
local CONTENT
|
||||||
|
|
||||||
|
# The subshell removes any trailing newlines. We forcibly add
|
||||||
|
# a dot to the content to preserve all newlines.
|
||||||
|
CONTENT="$(cat $2; echo '.')"
|
||||||
|
CONTENT="${CONTENT:0: -1}" # Remove last dot
|
||||||
|
|
||||||
|
local "$1" && mustache-indirect "$1" "$CONTENT"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Save the list of functions as an array
|
# Save the list of functions as an array
|
||||||
MUSTACHE_FUNCTIONS=$(declare -F)
|
MUSTACHE_FUNCTIONS=$(declare -F)
|
||||||
MUSTACHE_FUNCTIONS=( ${MUSTACHE_FUNCTIONS//declare -f /} )
|
MUSTACHE_FUNCTIONS=( ${MUSTACHE_FUNCTIONS//declare -f /} )
|
||||||
|
Loading…
Reference in New Issue
Block a user