πŸ–‹οΈ Extending Syntax


--eval-full-stack


View Source
while [ "$SHELLPEN_CONTEXT_RIGHT_INDEX" -ge 0 ]
do
  local depthBeforeEval="$SHELLPEN_CONTEXT_DEPTH"
  local lastCommand="$( !fn --shellpen-private writeDSL --get-last-pushed )"

  !fn --shellpen-private writeDSL --eval-last-pushed

  # Recalculate the context depth and right index from the context
  if [ -z "$BASH_PRE_43" ]
  then
    SHELLPEN_CONTEXT_DEPTH="${#SHELLPEN_SOURCE_CONTEXT[@]}"
  else
    eval "SHELLPEN_CONTEXT_DEPTH=\"\${#__SHELLPEN_CONTEXT_$SHELLPEN_SOURCE_ID[@]}\""
  fi
  SHELLPEN_CONTEXT_RIGHT_INDEX="$(( SHELLPEN_CONTEXT_DEPTH - 1 ))"

  local depthAfterEval="$SHELLPEN_CONTEXT_DEPTH"

  [ $depthBeforeEval -eq $depthAfterEval ] && { echo "!fn [Extension Error] Expected '$lastCommand' to --pop stack" >&2; return 1; }
done

Close every item on current stack (from right to left)