diff --git a/functions.sh b/functions.sh index 72ce02c..b8714ea 100644 --- a/functions.sh +++ b/functions.sh @@ -114,3 +114,10 @@ function rv() { printf ' RV=%d \e[0m\n' $RV >&2 } +function hexy() { + python3 -c 'import sys +for v in sys.argv[1:]: + print("{:02x}".format(int(v)), end="") +print("") +' $* +} diff --git a/is_remote.sh b/is_remote.sh new file mode 100644 index 0000000..5b0b8da --- /dev/null +++ b/is_remote.sh @@ -0,0 +1,21 @@ +# Detect if the current session is running on a remote server by listing parent +# processes of this shell and checking for things like sshd/tailscaled. Runs +# first because multiple other things rely on this. + + +function __is_remote() { + # names of daemon processes a remote shell might be a child process of + remote_daemons=( + sshd + ) + + is_remote=() + parent_procs="$(pstree -s $$)" + for d in ${remote_daemons[@]}; do + if [[ "$parent_procs" =~ "$d" ]]; then + return 1 + fi + done + + return 0 +}