unknown_error_bypass
This commit is contained in:
+7
-3
@@ -571,9 +571,13 @@ function on_exit {
|
||||
if ! is_true $CHILD_PROCESS; then
|
||||
2>&3 >&3 dump_stderr
|
||||
if [[ -v failure_type && $failure_code -gt 0 ]]; then
|
||||
2>&3 >&4 dump_failure
|
||||
if [[ -v error_source ]]; then
|
||||
2>&3 >&4 dump_stacktrace
|
||||
if [[ $failure_type == 'UNKNOWN ERROR' && $failure_payload == "source \"\$SCRIPT\"" ]]; then
|
||||
miaou_debug "<unknown_error bypass=true cause=source_script/>"
|
||||
else
|
||||
2>&3 >&4 dump_failure
|
||||
if [[ -v error_source ]]; then
|
||||
2>&3 >&4 dump_stacktrace
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
elif [[ -v failure_type ]]; then
|
||||
|
||||
+26
-1
@@ -35,4 +35,29 @@ count=0
|
||||
```bash
|
||||
count=0
|
||||
count=$((count+1))
|
||||
`
|
||||
```
|
||||
|
||||
## properly grab $?
|
||||
|
||||
> prefer plain `command` rather than `! command`
|
||||
> otherwise you will miss out the exit code
|
||||
|
||||
### wrong if
|
||||
|
||||
```bash
|
||||
if ! command; then
|
||||
local code=$?
|
||||
>&2 echo $code # => 0
|
||||
fi
|
||||
```
|
||||
|
||||
### right if
|
||||
|
||||
```bash
|
||||
if command; then
|
||||
: # useful for preserving $?
|
||||
else
|
||||
local code=$?
|
||||
>&2 echo $code
|
||||
fi
|
||||
```
|
||||
|
||||
+6
-3
@@ -32,6 +32,9 @@ echo 'echo PIPE2' | miaou-bash
|
||||
|
||||
## TODO
|
||||
|
||||
* [ ] prompt git shows version with `+` when there is more than one commit over current version. ie: v0.0.0 + 2 commits more should display v-1.0.0+
|
||||
* [ ] semver_git_tag should append `RELEASE_NOTES.md` from this TODO markdown file, providing that NEW NOTE section below contains appropriate items to fulfill the current release note
|
||||
* [ ] git log <LATEST_TAG>..HEAD --oneline
|
||||
* [ ] prompt should show up version with `+` when there is more than one commit,
|
||||
not yet versioned. ie: v0.0.0 + 2 commits more should display v0.0.0+
|
||||
* [ ] semver_git_tag should append `RELEASE_NOTES.md` from this TODO markdown file,
|
||||
providing that NEW NOTE section below contains appropriate items
|
||||
to fulfill the current release note
|
||||
* [ ] git log <LATEST_TAG>..HEAD --oneline
|
||||
|
||||
@@ -172,7 +172,9 @@ time {
|
||||
|
||||
fail_stderr_count unbound_variable 1
|
||||
fail_stderr_count child_error 4
|
||||
|
||||
fail_miaou_count command_error_multiline 7
|
||||
fail_miaou_count unknown 1
|
||||
|
||||
fail_stderr_grep two_options 'ERROR: too many args 2, either single option or SCRIPT + args accepted!'
|
||||
fail_stderr_grep script_not_found "ERROR: script 'doesnt_exist' not found!"
|
||||
|
||||
@@ -12,6 +12,15 @@ function do_subshell_false {
|
||||
result=$(false)
|
||||
}
|
||||
|
||||
function do_unknown {
|
||||
source /dev/stdin <<EOF
|
||||
echo START
|
||||
>&2 echo weird
|
||||
builtin exit 2
|
||||
echo END
|
||||
EOF
|
||||
}
|
||||
|
||||
function do_heredoc {
|
||||
# miaou-bash <<EOF
|
||||
source /dev/stdin <<EOF
|
||||
|
||||
Reference in New Issue
Block a user