dotfiles/local/bin/glurp

62 lines
1.1 KiB
Text
Raw Normal View History

2023-04-13 00:04:20 +02:00
#!/bin/bash
# Functions
# Error
function error {
>&2 echo -e "\033[1;31mERROR:\033[0m $1"; shift
exit "${1:-1}"
}
# Throw a value
function throw-value {
error "Value \"${1}\" invalid for ${2}." 1
}
function screenshot-path {
printf '%s%s-screenshot-%s.png' "${screenshot_d}/" "${LOGNAME}" "$(date +'%Y_%m_%d_%s')"
}
# Variables
declare -a prepend _command append
screenshot_d=/tmp
# Arguments
selection_mode="$1"; shift
saving_mode="$1" ; shift
# Command building
_command+=(grim)
case "$selection_mode" in
full)
:
;;
area)
_command+=(-g -)
prepend+=(slurp)
;;
*)
throw-value "$selection_mode" 'selection mode'
;;
esac
case "$saving_mode" in
clip)
_command+=(-)
append+=(wl-copy -t image/png)
;;
file)
_command+=("$(screenshot-path)")
;;
*)
throw-value "$saving_mode" 'saving mode'
;;
esac
# Debug
#echo "${prepend[@]} | ${_command[@]} | ${append[@]}"
#exit 0
# Execution
set -xe
"${prepend[@]}" | "${_command[@]}" | "${append[@]}"