diff --git a/Makefile b/Makefile index 2750c8b..9219d0f 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,4 @@ - -include config.mk - all: ./mkpicindex.sh > index.html clean: - rm -rf ${THUMBNAIL_PATH} index.html style.css justify.js + rm -rf index.html style.css justify.js LICENSE diff --git a/config.mk b/config.mk deleted file mode 100644 index a37293b..0000000 --- a/config.mk +++ /dev/null @@ -1,3 +0,0 @@ -GALLERY_ROW_HEIGHT=150 -THUMBNAIL_QUALITY=83 -THUMBNAIL_PATH="thm" diff --git a/mkpicindex.sh b/mkpicindex.sh index 58b0454..12ef001 100755 --- a/mkpicindex.sh +++ b/mkpicindex.sh @@ -1,23 +1,54 @@ #!/bin/sh -# READ CONFIG FILE -. $PWD/config.mk +printf '%s' ' +/*! + * ISC License (ISC) + * Copyright 2019 Stefan Hagen + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that + * the above copyright notice and this permission notice appear in all + * copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + * Used Software: + * justifiedGallery - v4.0.0-alpha + * http://miromannino.github.io/Justified-Gallery/ + * Copyright (c) 2019 Miro Mannino + * Licensed under the MIT license. + */ +' > LICENSE -# CREATE THUMBNAIL DIRECTORY -mkdir -p $THUMBNAIL_PATH +# CONFIGURE +GALLERY_TITLE="My Gallery" +GALLERY_ROW_HEIGHT=150 +THUMBNAIL_QUALITY=83 +THUMBNAIL_PATH="thm" -trap cleanup 1 2 3 6 +### ZE PROGAM STARTZ HERE ############################################## cleanup() { # DELETE BROKEN IMAGES printf '%s\n' "Removing incomplete thumbnails." >&2 find $THUMBNAIL_PATH -name "*_tmp.*" -exec rm -v "{}" \; } +trap cleanup 1 2 3 6 + +# CREATE THUMBNAIL DIRECTORY +mkdir -p $THUMBNAIL_PATH # PRINT HEADER -printf '%s\n' ' +printf '%s%s%s\n' ' - Bimbos - + '"$GALLERY_TITLE"' + @@ -33,13 +64,12 @@ add_image() { local FILE="$1" local THUMB="$THUMBNAIL_PATH/$2-$GALLERY_ROW_HEIGHT" local EXT="$3" - if ! [ -f "$FILE" ]; then return; fi; printf '%s\n' "Adding image: $FILE" >&2 if ! [ -f "$THUMB.$EXT" ] && [ "$FILE" != "$THUMB.$EXT" ]; - then convert -quality $THUMBNAIL_QUALITY -sharpen 2x2 \ + then convert -quality $THUMBNAIL_QUALITY -sharpen 2x2 \ -coalesce -resize 1600x$GALLERY_ROW_HEIGHT\> \ -deconstruct "$FILE" "${THUMB}_tmp.$EXT" && \ - mv "${THUMB}_tmp.$EXT" "$THUMB.$EXT" + mv "${THUMB}_tmp.$EXT" "$THUMB.$EXT" fi local WH="$(identify -format ' %w %h ' "$THUMB.$EXT" \ | awk '{ print "width="$1" height="$2 }')" @@ -50,17 +80,18 @@ add_image() { ### MAIN LOOP ########################################################## -# JPEG, PNG ORIGINAL -> JPEG THUMBNAIL -for file in *.{png,jpg,jpeg,PNG,JPG,JPEG}; +for file in *.*; do -# add_image - add_image "$file" "${file%%.*}" "jpeg" -done - -# GIF ORIGINAL -> GIF THUMBNAIL -for file in *.{gif,GIF}; -do - add_image "$file" "${file%%.*}" "gif" + if [ -f "$file" ]; + then + case $(printf '%s' ${file##*.} | tr '[:upper:]' '[:lower:]') in + jpg|jpeg|png) + add_image "$file" "${file%%.*}" "jpeg" ;; + gif) + add_image "$file" "${file%%.*}" "gif" ;; + *) printf '%s\n' "Ignoring: $file" >&2 ;; + esac + fi done ### MAIN LOOP END ###################################################### @@ -69,20 +100,18 @@ done printf '%s\n' " " - - # ASSETS (style.css, justify.js) ####################################### printf '%s' ' H4sICOmjrl0AA2p1c3RpZnkuanMAvL15e9tGsi/8//spRIwPBzCblOgs9wwohI8jO4kz2e1M