File: mergeall-products/unzipped/test/ziptools/_publish.sh
#===================================================================
# Automatically build+publish this folder's content, only.
#
# This builds the stand-alone ziptools distribution. Mergeall's
# source package also includes ziptools as an embedded component.
#
# Launch this script from Terminal in its own folder, with:
# cd $C/mergeall/test/ziptools
# bash _publish.sh
#
# NOT run by $W/_admin/BUILD-THUMBSPAGE-CLIENTS/_PUBLISH.sh:
# no thumbspage galleries here.
#
# This app has no separate build/ folder: this IS its build script.
# See example output in doctetc/, and edit here for other hosts.
#
# Mergeall script ../fix-nonportable-filenames.py is automatically
# copied here with a custom 'Status:' header line, so it's always
# up to date; it's useful before zips, and counted in __sloc__.py.
# ziptools and Mergeall now both ignore __pycache__; not added here.
#===================================================================
# get common defs
source ~/MY-STUFF/Websites/_admin/BUILD-THUMBSPAGE-CLIENTS/common.sh
# caution: run __sloc.py__ first if code changed
#------------------------------------------
# 1) Zip ziptools (self) in Code
#------------------------------------------
cd $C/mergeall/test
mv ziptools/__private__ $temp
# copy mergeall's fixer script, and mod its status line
cp ../fix-nonportable-filenames.py ziptools
repl='Status: this script is copied here from Mergeall, learning-python.com/mergeall'
sed -i '' -e "s@Status:.*@$repl@" ziptools/fix-nonportable-filenames.py
py3 $Z/zip-create.py ziptools.zip ziptools -skipcruft # this is what users get (test READMEs)
mv $temp/__private__ ziptools
#------------------------------------------
# 2) Unzip in Websites/../Complete/ziptools
#------------------------------------------
cd $W/Programs/Current/Complete/ziptools # this has its own .htaccess
rm -rf ziptools* # nested ziptools/ziptools
cp -p $C/mergeall/test/ziptools.zip .
mv $C/mergeall/test/ziptools.zip $Z/__private__/ziptools--$stamp.zip
py3 $Z/zip-extract.py ziptools.zip . -permissions # makes ziptools subdir here, alongside zip
# already has, but may change [has no more!]
py3 $M/insert-analytics.py ziptools/_README.html
#------------------------------------------
# 3) Publish to local UNION and zip there
#------------------------------------------
# copies README=>_README; would add ip-anon line to .htaccess but did manually; tweaks analytics
cd $W
py3 _PUBLISH.py | tail -n 20
cd UNION
py3 $Z/zip-create.py ziptools.zip ziptools -skipcruft # ziptools/{ziptools.zip, ziptools/}
#--------------------------------------------
# 4) Upload to and unzip in website's root
#--------------------------------------------
SCP ziptools.zip htdocs
echo '# Could run ziptools on the server too, but demo interoperability'
# unzip at site
SSH <<-EOF
cd htdocs # site root
rm -rf ziptools # entire top-level folder; or via filezilla
unzip -d . ziptools.zip # recreates top ziptools/ folder: ziptools/{ziptools.zip, ziptools/}
rm ziptools.zip # top (root level) zip, not the nested one!
exit
# keep .zip and unzipped content in top ziptools/
EOF
rm ziptools.zip # in local UNION
#--------------------------------------------
# 5) Download and verify zip: live to local
#--------------------------------------------
cd $temp
rm -rf _README.html ziptools.zip ziptools diffallz
# content
printf '\n** Diff: there should 1 diff in README: analytics\n'
curl -O https://learning-python.com/ziptools/ziptools/_README.html
diff _README.html $Z/_README.html
# zipfile
printf '\n** Cmp: there should be no cmp output for zip\n'
curl -O https://learning-python.com/ziptools/ziptools.zip
cmp -bl ziptools.zip $Z/__private__/ziptools--$stamp.zip
# unzippped content
py3 $Z/zip-extract.py ziptools.zip . > /dev/null # makes ziptools/
printf '\n** Diffall: there should be 1 for unzip = private/\n'
py3 $C/mergeall/diffall.py ziptools $Z -skipcruft > diffallz
tail -n 7 diffallz
printf '\n** Diffall: there should be 1 unique = private/\n'
grep --context=4 '*UNIQ' diffallz
printf '\n** Mergeall: there should be 1 unique from = private/\n'
py3 $C/mergeall/mergeall.py $Z ziptools -skipcruft -report | tail -n 9
# keep to eyeball: rm -rf _README.html zipfile.zip zipfile diffallz
echo 'Bye.'