ao-mud is a spellbook of well-commented atomic bash scripts that each do one thing. we are building semantic building blocks for an autonomously-evolving digital spellcasting language.
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.

54 lines
1.5 KiB

#!/usr/bin/env sh
# This spell reveals the x and y coordinates of the cursor in the terminal window.
# Define the function to calculate the position of the cursor
fathom_cursor() {
local position
local x=false
local y=false
local verbose=false
while getopts 'vxy' flag; do
case "${flag}" in
--verbose|v) verbose=true ;;
x) x=true ;;
y) y=true ;;
esac
done
# Get the position of the cursor
position=$(IFS=';' read -sdR -p $'\E[6n' ROW COL; printf "%s;%s" "${ROW#*[}" "$COL")
if [ $x = true ] && [ $y = true ]; then
if [ $verbose = true ]; then
printf "X: %s\n" "${position##*;}"
printf "Y: %s\n" "${position%%;*}"
else
printf "%s\n" "${position##*;}"
printf "%s\n" "${position%%;*}"
fi
else
if [ $x = true ]; then
if [ $verbose = true ]; then
printf "X: "
fi
printf "%s\n" "${position##*;}"
elif [ $y = true ]; then
if [ $verbose = true ]; then
printf "Y: "
fi
printf "%s\n" "${position%%;*}"
else
if [ $verbose = true ]; then
printf "Position: "
fi
printf "%s\n" "$position"
fi
fi
}
# Check if the script is being called from another script
if [ "${BASH_SOURCE[0]}" = "$0" ]; then
# If not, call the function
fathom_cursor "$@"
fi