some_upd
This commit is contained in:
Executable
+63
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
PICS="$HOME/Pictures"
|
||||
AVATAR="$PICS/avatar.png"
|
||||
BCKP="$PICS/.bckp"
|
||||
|
||||
NO_BCKP=0
|
||||
DEL_SRC=0
|
||||
|
||||
while getopts ":nr" opt; do
|
||||
case "$opt" in
|
||||
n) NO_BCKP=1 ;;
|
||||
r) DEL_SRC=1 ;;
|
||||
*) echo "Usage: $0 [-n] [-r] <file.png>" >&2; exit 2 ;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
src=${1:-}
|
||||
if [ -z "$src" ]; then
|
||||
echo "Usage: $0 [-n] [-r] <file.png>" >&2
|
||||
exit 2
|
||||
fi
|
||||
if [ ! -f "$src" ]; then
|
||||
echo "Error: '$src' not found" >&2
|
||||
exit 3
|
||||
fi
|
||||
|
||||
orig_src="$src"
|
||||
|
||||
if command -v magick >/dev/null 2>&1; then
|
||||
IM_CMD="magick"
|
||||
else
|
||||
echo "Error: ImageMagick 'convert' not found" >&2
|
||||
exit 5
|
||||
fi
|
||||
|
||||
tmp=$(mktemp --suffix=.png) || { echo "Error: mktemp failed" >&2; exit 6; }
|
||||
|
||||
if ! $IM_CMD -- "$src" "$tmp" >/dev/null 2>&1; then
|
||||
echo "Error: ImageMagick conversion failed" >&2
|
||||
rm -f -- "$tmp"
|
||||
exit 7
|
||||
fi
|
||||
|
||||
src="$tmp"
|
||||
case "${src,,}" in
|
||||
*.png) ;;
|
||||
*) echo "Error: only .png files are accepted" >&2; exit 4 ;;
|
||||
esac
|
||||
|
||||
if [ "$NO_BCKP" -eq 0 ] && [ -f "$AVATAR" ]; then
|
||||
mkdir -p "$BCKP"
|
||||
ts=$(date +%Y%m%d_%H%M%S)
|
||||
mv -f -- "$AVATAR" "$BCKP/avatar${ts}.png"
|
||||
fi
|
||||
|
||||
cp -f -- "$src" "$AVATAR"
|
||||
|
||||
if [ "$DEL_SRC" -eq 1 ]; then
|
||||
rm -f -- "$orig_src"
|
||||
fi
|
||||
Reference in New Issue
Block a user