mirror of https://github.com/curusarn/resh
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.0 KiB
85 lines
3.0 KiB
|
|
PATH=$PATH:~/.resh/bin
|
|
export __RESH_RT_SESSION=$EPOCHREALTIME
|
|
export __RESH_RT_SESS_SINCE_BOOT=$(cat /proc/uptime | cut -d' ' -f1)
|
|
export __RESH_SESSION_ID=$(cat /proc/sys/kernel/random/uuid)
|
|
nohup resh-daemon &>/dev/null & disown
|
|
|
|
preexec() {
|
|
# core
|
|
__RESH_COLLECT=1
|
|
__RESH_CMDLINE="$1"
|
|
|
|
# posix
|
|
__RESH_COLS="$COLUMNS"
|
|
__RESH_HOME="$HOME"
|
|
__RESH_LANG="$LANG"
|
|
__RESH_LC_ALL="$LC_ALL"
|
|
# other LC ?
|
|
__RESH_LINES="$LINES"
|
|
__RESH_LOGIN="$LOGNAME"
|
|
__RESH_PATH="$PATH"
|
|
__RESH_PWD="$PWD"
|
|
__RESH_SHELL="$SHELL"
|
|
__RESH_TERM="$TERM"
|
|
|
|
# non-posix
|
|
__RESH_PID="$BASHPID" # current pid
|
|
__RESH_SHELL_PID="$$" # pid but subshells don't affect it
|
|
__RESH_WINDOWID="$WINDOWID" # session
|
|
__RESH_HOST="$HOSTNAME"
|
|
__RESH_HOSTTYPE="$HOSTTYPE"
|
|
__RESH_OSTYPE="$OSTYPE"
|
|
__RESH_MACHTYPE="$MACHTYPE"
|
|
__RESH_SHLVL="$SHLVL"
|
|
__RESH_GIT_CDUP="$(git rev-parse --show-cdup 2>/dev/null)"
|
|
__RESH_GIT_CDUP_EXIT_CODE=$?
|
|
__RESH_GIT_REMOTE="$(git remote get-url origin 2>/dev/null)"
|
|
__RESH_GIT_REMOTE_EXIT_CODE=$?
|
|
#__RESH_GIT_TOPLEVEL="$(git rev-parse --show-toplevel)"
|
|
#__RESH_GIT_TOPLEVEL_EXIT_CODE=$?
|
|
|
|
# time
|
|
__RESH_TZ_BEFORE=$(date +%:z)
|
|
__RESH_RT_BEFORE="$EPOCHREALTIME"
|
|
}
|
|
|
|
precmd() {
|
|
__RESH_EXIT_CODE=$?
|
|
__RESH_RT_AFTER=$EPOCHREALTIME
|
|
__RESH_SECS_UTC_AFTER=$(date +%s -u)
|
|
__RESH_TZ_AFTER=$(date +%:z)
|
|
if [ ! -z ${__RESH_COLLECT+x} ]; then
|
|
resh-collect -cmdLine "$__RESH_CMDLINE" -exitCode "$__RESH_EXIT_CODE" \
|
|
-cols "$__RESH_COLS" \
|
|
-home "$__RESH_HOME" \
|
|
-lang "$__RESH_LANG" \
|
|
-lcAll "$__RESH_LC_ALL" \
|
|
-lines "$__RESH_LINES" \
|
|
-login "$__RESH_LOGIN" \
|
|
-path "$__RESH_PATH" \
|
|
-pwd "$__RESH_PWD" \
|
|
-realPwd "$(realpath $__RESH_PWD)" \
|
|
-shell "$__RESH_SHELL" \
|
|
-term "$__RESH_TERM" \
|
|
-pid "$__RESH_PID" -shellPid "$__RESH_SHELL_PID" \
|
|
-windowId "$__RESH_WINDOWID" \
|
|
-host "$__RESH_HOST" \
|
|
-hosttype "$__RESH_HOSTTYPE" \
|
|
-ostype "$__RESH_OSTYPE" \
|
|
-machtype "$__RESH_MACHTYPE" \
|
|
-shlvl "$__RESH_SHLVL" \
|
|
-gitCdup "$__RESH_GIT_CDUP" \
|
|
-gitCdupExitCode "$__RESH_GIT_CDUP_EXIT_CODE" \
|
|
-gitRemote "$__RESH_GIT_REMOTE" \
|
|
-gitRemoteExitCode "$__RESH_GIT_REMOTE_EXIT_CODE" \
|
|
-realtimeBefore "$__RESH_RT_BEFORE" \
|
|
-realtimeAfter "$__RESH_RT_AFTER" \
|
|
-realtimeSession "$__RESH_RT_SESSION" \
|
|
-realtimeSessSinceBoot "$__RESH_RT_SESS_SINCE_BOOT" \
|
|
-timezoneBefore "$__RESH_TZ_BEFORE" \
|
|
-timezoneAfter "$__RESH_TZ_AFTER"
|
|
fi
|
|
unset __RESH_COLLECT
|
|
}
|
|
|
|
|