#!/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

