#!/bin/sh help() { cat << EOF ${0}: Wrapper script to take screenshots options: -d [File] Write to File -s Select the area with the cursor -h Print this message and exit NOTE: save directory is ~/pic/screenshots EOF } err() { for line in "$@"; do echo "${line}" >&2 done exit 1 } run() { if ! ${1} > /dev/null 2>&1; then err "${2}" fi [ -n "${3}" ] && echo "${3}" exit 0 } default_dir="${HOME}"/pics/screenshots s_flg="" while getopts "d:sh" option; do case "${option}" in d) input="${OPTARG}" ;; s) s_flg="1" ;; h) help; exit 0 ;; *) err "Try '${0} -h' for help" ;; esac done shift $((OPTIND - 1)) [ ${#} != 0 ] && err "${0}: Invalid usage" "Try '${0} -h' for help." if [ -z "${input}" ]; then outfile="${default_dir}"/%b%d::%H%M%S.png else if [ -d "${input}" ]; then outfile="${input}"/%b%d::%H%M%S.png else outfile="${input}" fi fi if [ ! -e "$(dirname "${outfile}")" ]; then mkdir -pv "$(dirname "${outfile}")" > /dev/null 2>&1 \ || err "${0}: Failed to create directory" fi if [ "${s_flg}" = "1" ]; then run "scrot -zs ${outfile}" "Failed to screenshot" else run "scrot -z ${outfile}" "Failed to screenshot" fi