/dev/stdin...
This commit is contained in:
+24
-9
@@ -623,9 +623,16 @@ function usage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function parse_options {
|
function parse_options {
|
||||||
[[ $# == 0 ]] && >&2 echo 'ERROR: script expected!' && builtin exit 2
|
HEREDOC=false
|
||||||
|
if [[ $# == 0 ]]; then
|
||||||
if [[ $# == 1 ]]; then
|
if [[ -t 0 ]]; then
|
||||||
|
>&2 echo 'ERROR: script expected!'
|
||||||
|
builtin exit 2
|
||||||
|
else
|
||||||
|
HEREDOC=true
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
elif [[ $# == 1 ]]; then
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--help) usage && builtin exit ;;
|
--help) usage && builtin exit ;;
|
||||||
--version) cat "${MIAOU_BASH_DIR:-/opt/miaou-bash}/.semver_git_tag" && builtin exit ;;
|
--version) cat "${MIAOU_BASH_DIR:-/opt/miaou-bash}/.semver_git_tag" && builtin exit ;;
|
||||||
@@ -646,10 +653,12 @@ function parse_options {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
[[ $1 =~ ^- ]] && >&2 echo "ERROR: too many args $#, either single option or SCRIPT + args accepted!" && builtin exit 2
|
[[ $1 =~ ^- ]] && >&2 echo "ERROR: too many args $#, either single option or SCRIPT + args accepted!" && builtin exit 2
|
||||||
|
|
||||||
SCRIPT="$1"
|
SCRIPT="$1"
|
||||||
[[ ! -v SCRIPT ]] && >&2 echo 'ERROR: script expected!' && builtin exit 2
|
if [[ ! -f "$SCRIPT" ]]; then
|
||||||
[[ ! -f "$SCRIPT" ]] && >&2 echo "ERROR: script '$SCRIPT' not found!" && builtin exit 2
|
>&2 echo "ERROR: script '$SCRIPT' not found!"
|
||||||
true
|
builtin exit 3
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function read {
|
function read {
|
||||||
@@ -670,7 +679,8 @@ trap 'on_exit $?' EXIT
|
|||||||
trap 'on_pipe' PIPE
|
trap 'on_pipe' PIPE
|
||||||
trap 'on_return' RETURN
|
trap 'on_return' RETURN
|
||||||
|
|
||||||
BASH_ARGV0="$SCRIPT" && shift
|
[[ -v SCRIPT ]] && BASH_ARGV0="${SCRIPT}" && shift
|
||||||
|
|
||||||
if is_true "$CHILD_PROCESS"; then
|
if is_true "$CHILD_PROCESS"; then
|
||||||
# any nested children
|
# any nested children
|
||||||
exec 4>/dev/tty 2>"$MIAOU_BASH_ERROR"
|
exec 4>/dev/tty 2>"$MIAOU_BASH_ERROR"
|
||||||
@@ -688,5 +698,10 @@ else
|
|||||||
miaou_debug "<main file=$BASH_ARGV0 pid=${BASHPID}/>"
|
miaou_debug "<main file=$BASH_ARGV0 pid=${BASHPID}/>"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck source=/dev/null
|
if [[ "$HEREDOC" == true ]]; then
|
||||||
source "$SCRIPT"
|
# shellcheck source=/dev/stdin
|
||||||
|
source /dev/stdin
|
||||||
|
else
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "$SCRIPT"
|
||||||
|
fi
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ time {
|
|||||||
|
|
||||||
fail_stderr_count unbound_variable 1
|
fail_stderr_count unbound_variable 1
|
||||||
fail_stderr_count child_error 4
|
fail_stderr_count child_error 4
|
||||||
fail_miaou_count command_error_multiline 6
|
fail_miaou_count command_error_multiline 7
|
||||||
}
|
}
|
||||||
failed=${#failures[@]}
|
failed=${#failures[@]}
|
||||||
success=$((test_count - failed))
|
success=$((test_count - failed))
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ function do_subshell_false {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function do_command_error_multiline {
|
function do_command_error_multiline {
|
||||||
miaou-bash <<EOF
|
source /dev/stdin <<EOF
|
||||||
echo ok
|
echo ok
|
||||||
|
echo yop
|
||||||
false
|
false
|
||||||
echo SHOULD NOT APPEAR
|
echo SHOULD NOT APPEAR
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user