diff --git a/sample_screenshotter.sh b/sample_screenshotter.sh index c577ce1..d6f3603 100644 --- a/sample_screenshotter.sh +++ b/sample_screenshotter.sh @@ -1,26 +1,67 @@ #!/usr/bin/env bash # Script Configuration -IMAGEPATH="$HOME/Pictures" -IMAGENAME="ass" -FILE="${IMAGEPATH}/${IMAGENAME}.png" -LOG_DIR=$(pwd) -CONFIG_FILE="config.sh" - -# Load configuration if available +# Load configuration file if available # this is useful if you want to source keys from a secret file +CONFIG_FILE="config.sh" if [ -f "$CONFIG_FILE" ]; then + # shellcheck disable=1090 source "${CONFIG_FILE}" fi +LOG_DIR=$(pwd) +if [ ! -d "$LOG_DIR" ]; then + echo "The directory you have specified to save the logs does not exist." + echo "Please create the directory with the following command:" + echo "mkdir -p $LOG_DIR" + echo -en "Or specify a different LOG_DIR\n" + exit 1 +fi + +IMAGE_PATH="$HOME/Pictures" +if [ ! -d "$IMAGE_PATH" ]; then + echo "The directory you have specified to save the screenshot does not exist." + echo "Please create the directory with the following command:" + echo "mkdir -p $IMAGE_PATH" + echo -en "Or specify a different IMAGE_PATH\n" + exit 1 +fi + +IMAGE_NAME="ass" +FILE="${IMAGE_PATH}/${IMAGE_NAME}.png" + +# Function to check if a tool is installed +check_tool() { + command -v "$1" >/dev/null 2>&1 +} + # Function to take Flameshot screenshots takeFlameshot() { - flameshot config -f "${IMAGENAME}" - flameshot gui -r -p "${IMAGEPATH}" >/dev/null + # check if flameshot tool is installed + REQUIRED_TOOLS=("flameshot") + + for tool in "${REQUIRED_TOOLS[@]}"; do + if ! check_tool "$tool"; then + echo "Error: $tool is not installed. Please install it before using this script." + exit 1 + fi + done + + flameshot config -f "${IMAGE_NAME}" + flameshot gui -r -p "${IMAGE_PATH}" >/dev/null } # Function to take Wayland screenshots using grim + slurp takeGrimshot() { + # check if grim and slurp are installed + REQUIRED_TOOLS=("grim" "slurp") + for tool in "${REQUIRED_TOOLS[@]}"; do + if ! check_tool "$tool"; then + echo "Error: $tool is not installed. Please install it before using this script." + exit 1 + fi + done + grim -g "$(slurp)" "${FILE}" >/dev/null }