dwatch(1): Export ARGV to profiles loaded via load_profile()
A module that wishes to post-process the output needs to know which arguments were passed in order to re-execute a child in a pipe-chain. Further, the expansion of ARGV needs to be such that items are escaped properly. Sponsored by: Smule, Inc.
This commit is contained in:
parent
4a73674e32
commit
6a21b3cdf4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=333516
@ -537,6 +537,11 @@ list_profiles()
|
||||
exit $SUCCESS
|
||||
}
|
||||
|
||||
shell_escape()
|
||||
{
|
||||
echo "$*" | awk 'gsub(/'\''/, "&\\\\&&")||1'
|
||||
}
|
||||
|
||||
load_profile()
|
||||
{
|
||||
local profile="$1"
|
||||
@ -546,6 +551,44 @@ load_profile()
|
||||
|
||||
local oldIFS="$IFS"
|
||||
local dir found=
|
||||
local ARGV=
|
||||
|
||||
[ $COUNT -gt 0 ] && ARGV="$ARGV -N $COUNT"
|
||||
[ "$DEBUG" ] && ARGV="$ARGV -d"
|
||||
[ "$DESTRUCTIVE_ACTIONS" ] && ARGV="$ARGV -w"
|
||||
[ "$EXIT_AFTER_COMPILE" ] && ARGV="$ARGV -e"
|
||||
[ "$GROUP" ] && ARGV="$ARGV -g $GROUP"
|
||||
[ "$JID" ] && ARGV="$ARGV -j $JID"
|
||||
[ $MAX_ARGS -ne $_MAX_ARGS ] && ARGV="$ARGV -B $MAX_ARGS"
|
||||
[ $MAX_DEPTH -ne $_MAX_DEPTH ] && ARGV="$ARGV -K $MAX_DEPTH"
|
||||
[ "$ONELINE" ] && ARGV="$ARGV -1"
|
||||
[ "$PID" ] && ARGV="$ARGV -p $PID"
|
||||
[ "$PSTREE" ] && ARGV="$ARGV -R"
|
||||
[ "$QUIET" ] && ARGV="$ARGV -q"
|
||||
[ "$TIMEOUT" ] && ARGV="$ARGV -T $TIMEOUT"
|
||||
[ "$TRACE" ] && ARGV="$ARGV -x"
|
||||
[ "$USER" ] && ARGV="$ARGV -u $USER"
|
||||
[ "$VERBOSE" ] && ARGV="$ARGV -v"
|
||||
|
||||
[ "$FILTER" ] &&
|
||||
ARGV="$ARGV -r '$( shell_escape "$FILTER" )'"
|
||||
[ "$EXECREGEX" ] &&
|
||||
ARGV="$ARGV -z '$( shell_escape "$EXECREGEX" )'"
|
||||
[ "$CUSTOM_DETAILS" ] &&
|
||||
ARGV="$ARGV -E '$( shell_escape "$EVENT_DETAILS" )'"
|
||||
[ "$EVENT_TEST" ] &&
|
||||
ARGV="$ARGV -t '$( shell_escape "$EVENT_TEST" )'"
|
||||
[ "$OUTPUT" ] &&
|
||||
ARGV="$ARGV -o '$( shell_escape "$OUTPUT" )'"
|
||||
[ "$OUTPUT_CMD" ] &&
|
||||
ARGV="$ARGV -O '$( shell_escape "$OUTPUT_CMD" )'"
|
||||
|
||||
case "$PROBE_TYPE" in
|
||||
provider) ARGV="$ARGV -P" ;;
|
||||
module) ARGV="$ARGV -m" ;;
|
||||
function) ARGV="$ARGV -f" ;;
|
||||
name) ARGV="$ARGV -n" ;;
|
||||
esac
|
||||
|
||||
IFS=:
|
||||
for dir in $DWATCH_PROFILES_PATH; do
|
||||
|
Loading…
Reference in New Issue
Block a user