aboutsummaryrefslogtreecommitdiffstats
path: root/bin/thumbs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/thumbs.sh')
-rwxr-xr-xbin/thumbs.sh60
1 files changed, 60 insertions, 0 deletions
diff --git a/bin/thumbs.sh b/bin/thumbs.sh
new file mode 100755
index 0000000..3c1a633
--- /dev/null
+++ b/bin/thumbs.sh
@@ -0,0 +1,60 @@
+#!/bin/sh -ex
+
+_img_dirs="$( find . -maxdepth 1 -type d | sed -e '1d' -e 's/^\.\///' )"
+_thumb_size="835x"
+_thumbs_dir="thumbs"
+_force_render=0
+
+usage() {
+ echo "usage: $0 [-f|--force]"
+}
+
+[ -n "$1" ] && \
+ case $1 in
+ -f|--force)
+ _force_render=1
+ ;;
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+
+for dir in $_img_dirs
+do
+ cd "./$dir" || exit 1
+
+ mkdir -p "$_thumbs_dir"
+
+ _imgs="$(find . -maxdepth 1 \
+ -iname "*.jpg" -or \
+ -iname "*.jpeg" -or \
+ -iname "*.gif" -or \
+ -iname "*.png" -type f | cut -b 3-)"
+ for _img in $_imgs
+ do
+ _ext="${_img##*.}"
+ _name="${_img%%.*}"
+ _thumb="./$_thumbs_dir/${_name}_thumb.${_ext}"
+
+ [ "$_force_render" -eq 1 ] || [ ! -f "$_thumb" ] && \
+ {
+ # when compressed, gifs look ugly, so just copy them
+ # i know this is bad, but i'll adress it later
+ [ "$_ext" = "gif" ] && \
+ echo "copied $1 to $_thumb" && \
+ cp "$_img" "$_thumb" && continue
+
+ echo "creating thumbnail for $_name..."
+ convert "$_img" -resize "$_thumb_size" "$_thumb"
+ }
+ done
+
+ cd ".."
+
+done
+