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
|
exit $SUCCESS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shell_escape()
|
||||||
|
{
|
||||||
|
echo "$*" | awk 'gsub(/'\''/, "&\\\\&&")||1'
|
||||||
|
}
|
||||||
|
|
||||||
load_profile()
|
load_profile()
|
||||||
{
|
{
|
||||||
local profile="$1"
|
local profile="$1"
|
||||||
@ -546,6 +551,44 @@ load_profile()
|
|||||||
|
|
||||||
local oldIFS="$IFS"
|
local oldIFS="$IFS"
|
||||||
local dir found=
|
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=:
|
IFS=:
|
||||||
for dir in $DWATCH_PROFILES_PATH; do
|
for dir in $DWATCH_PROFILES_PATH; do
|
||||||
|
Loading…
Reference in New Issue
Block a user