blob: 71f2c4ef697ee780d76c927778e9bb56556401be [file] [log] [blame]
#!/bin/bash
# Set up command recording wrapper
[ -z "$WRAPDIR" ] && WRAPDIR="$PWD"/record-commands && RM=$(which rm)
[ -z "$LOGPATH" ] && export LOGPATH="$PWD"/log.txt
if [ ! -x "$WRAPDIR/logpath" ]
then
LOG="$(which logpath)"
mkdir -p "$WRAPDIR" || exit 1
[ -e "$LOG" ] && cp -H "$LOG" "$WRAPDIR/logpath" || { cd "$(dirname $0)/.." &&
PREFIX="$WRAPDIR/" scripts/single.sh logpath >/dev/null &&
LOG="$PWD/logpath" || exit 1; }
tr : '\n' <<< "$PATH" | while read i; do
find "$i" \( -type f -o -type l \) -maxdepth 1 -executable -exec basename {} \; | \
while read FILE; do ln -s logpath "$WRAPDIR/$FILE" 2>/dev/null; done
done
fi
# Delete old log (if any)
rm -f "$LOGPATH"
# When sourced, set up wrapper for current context.
if [ $# -gt 0 ]
then
PATH="$WRAPDIR:$PATH" "$@"
X=$?
[ -n "$RM" ] && "$RM" -rf "$WRAPDIR"
exit $X
else
echo export LOGPATH=${LOGPATH@Q} PATH=${WRAPDIR@Q}:${PATH@Q}
fi