From 5999ca53f255fc787c113b0a93a0a341548e1f2e Mon Sep 17 00:00:00 2001 From: Knut Ahlers <knut@ahlers.me> Date: Tue, 28 Jan 2025 12:50:40 +0100 Subject: [PATCH] Add imgshare command Signed-off-by: Knut Ahlers <knut@ahlers.me> --- bin/imgshare | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 bin/imgshare diff --git a/bin/imgshare b/bin/imgshare new file mode 100755 index 0000000..6713ecc --- /dev/null +++ b/bin/imgshare @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +set -euo pipefail + +: ${COPY:=0} # Copy URL to clipboard +: ${DIRECT:=0} # Remove hash from URL +: ${TRIM:=0} # Trim Image to content + +source ~/bin/script_framework.sh + +usage="$(basename $0) [-cdt] [image]" + +while getopts "cdt" opt; do + case "${opt}" in + c) COPY=1 ;; + d) DIRECT=1 ;; + t) TRIM=1 ;; + *) fatal "${usage}" ;; + esac +done + +source_file=${1:-} +deletions=() + +function exec_deletions() { + [ ${#deletions[@]} -gt 0 ] || return + rm "${deletions[@]}" +} + +trap exec_deletions EXIT + +if ! [[ -f ${source_file} ]]; then + step "Reading source-file from clipboard..." + tmp_src=$(mktemp --suffix .png XXXXXXXX) + pbpaste -t image/png >${tmp_src} + source_file=${tmp_src} + deletions+=(${tmp_src}) +fi + +if [ $TRIM -eq 1 ]; then + step "Trimming source-file..." + trim_file=$(mktemp --suffix .png XXXXXXXX) + magick ${source_file} -fuzz 2% -trim ${trim_file} + source_file=${trim_file} + deletions+=(${trim_file}) +fi + +step "Sharing image..." +url=$(share ${source_file}) + +if [ $DIRECT -eq 1 ]; then + url=$(sed 's/#//' <<<"${url}") +fi + +if [ $COPY -eq 1 ]; then + step "Copying URL..." + pbcopy <<<"${url}" +else + echo "${url}" +fi