nixrice/.local/bin/sysbin
2023-10-17 21:41:07 -04:00

30 lines
863 B
Bash
Executable file

#!/usr/bin/env sh
# Finds the absolute path of a system binary by checking places in most-likely order.
# Helpful for when overriding a binary with a script, meaning the script takes higher
# precedence in the path, but then the script needs to call the actual binary.
if [ -z "$1" ]; then
# No program prvided
exit 1
fi
# Split the custom path into an array based on ":" (path separator)
IFS=":" read -ra path_dirs <<< "$PATH"
# Iterate through the directories in PATH_2
for dir in "${path_dirs[@]}"; do
if [ "$(echo "$dir" | cut -c 1)" = "~" ] || [ "$(echo "$dir" | cut -c 1-5)" = "/home" ]; then
# We are looking in a user's home, skip.
continue
fi
potential_path="$dir/$1"
if [ -x "$potential_path" ]; then
echo "$potential_path"
exit 0
fi
done
echo "command not found: $1"
exit 2 # Not found