File: thumbspage/examples/trnpix/_generate.sh
#!/bin/bash
# ========================================================================
# Run this bash script in this folder to make just this folder's gallery:
#
# ~/.../thumbspage/examples/trnpix$ bash _generate.sh
#
# To make all examples, run the script ../../build/generate-examples.py,
# which runs this script and all others like it. This automates console
# inputs, but requires a Unix-style bash shell; extrapolate for other
# shells or run thumbspage manually elsewhere per _HOW-MADE.txt here.
# This could use 2.3 input config args instead of <<EOF shell magic.
#
# This REGENERATES the external trnpix demo stored elsewhere in a website
# folder; it won't work unless that website folder is present. This now
# also copies the demo's {_generate, _publish}.sh, but with double "_".
#
# Caveat: as coded, these demos have the hosting site's analytics code
# embedded in them; please don't post them online verbatim.
#
# Caveat: trnpixcopy's setting must be changed for each new release #.
#
# Update [2.3]: this now runs a subscript, trnpix/_generate.sh, to remake
# trnpix content, instead of a command here which is apt to fall out of
# sync. The subscript's command looks like this today (but may change!):
#
# python3 $C/thumbspage/thumbspage.py . \
# useDynamicIndexLayout=False \
# inputCleanThumbsFolder=True inputThumbsPerRow=4 \
# inputThumbMaxSize=100 inputUseViewerPages=True \
# popupFgColor=\'tan\' \
# popupOpacity=0.45
#
# Its former version was already out of synch when this was modified:
# python3 ../../thumbspage.py $trnpix <<-EOF ... EOF
#
# Update [2.3]: results-2.3/__{generate, publish}.sh is copies of
# trnpix's _{generate, publish}.sh build scripts.
#
# Update [2.3]: trnpix now builds both fixed and dynamic index pages,
# with html files and thumbs+viewer folders for both, and builds its
# HEADER.html from its _HEADER.html with a tag replace; this grabs all.
#
# Update [3.0]: Dynamic index layout is now the default, so trnpix's
# fixed variant is now just a demo. Because it uses fully explicit
# cmd arg configs, there's nothing to adjust for the new layout.
# [3.0] also renamed image files with spaces; use new names here
# (and spaces in filenames cause all sorts of kinipshins in Bash...).
# ========================================================================
# subset of live demo, for viewing code online
trnpix=~/MY-STUFF/Websites/Posts/Current/Complete/trnpix
trnpixcopy=./results-3.0
# doesn't exist or not a dir? [2.2]
if [ ! -d $trnpixcopy ]; then { rm -f $trnpixcopy; mkdir $trnpixcopy; } fi
# regen index+thumbs+viewers: command now in a trnpix subscript (see above)
pushd $trnpix
bash _generate.sh
popd
# copy a small subset of the gallery for online views (bash autosplits strings)
# get core gallery files, prepending a _ ('' retains \)
files="FOOTER.html HEADER.html _HEADER.html \
index.html index-dynamic.html \
_generate.sh _publish.sh"
for name in $files
do
cp $trnpix/$name $trnpixcopy/_$name
done
# get a sampling of image files
# [3.0] use array instead of string split for embedded spaces
# and quote filename references for spaces too; yikes...
files=("2000 Newmarket 1.jpg" "2001 Dublin 2.jpg" "2018 Galaxy S8+.jpg" "2018 Mobile Site 1.png")
# get .note files: not required for viewing (their text is embedded in .htmls) [2.3]
for name in "${files[@]}"
do
cp "$trnpix/$name" "$trnpixcopy"
if [ -e "$trnpix/$name.note" ]
then
cp "$trnpix/$name.note" $trnpixcopy
fi
done
# copy a sampling of the thumbnail+viewer-page subfolders
subdirs='_thumbspage _thumbspage-dynamic'
for subdir in $subdirs
do
rm -rf $trnpixcopy/$subdir
mkdir $trnpixcopy/$subdir
for name in "${files[@]}"
do
cp "$trnpix/$subdir/$name" "$trnpixcopy/$subdir"
cp "$trnpix/$subdir/$name.html" "$trnpixcopy/$subdir"
done
done