]> Sergey Matveev's repositories - galgen.git/commitdiff
Ability to omit alternative formats
authorSergey Matveev <stargrave@stargrave.org>
Thu, 14 Sep 2023 11:00:43 +0000 (14:00 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 14 Sep 2023 11:00:43 +0000 (14:00 +0300)
README
galgen.zsh

diff --git a/README b/README
index b49439589cef11121a30a1cad7d565a5b2972188..137305c52d3f0e887bef700c527d42cbd694b830 100644 (file)
--- a/README
+++ b/README
@@ -15,8 +15,9 @@ You can set the following environment variables:
 * STYLE (URL to CSS file, by default is none, no stylesheet link is set)
 
 If it is JPEG XL, then, for compatibility reason with non-bleeding edge
-software, alternative format is generated too: either JPEG (if JPEG XL
-contains losslessly transcoded JPEG), or PNG (leaving off the alpha channel).
+software, alternative format is generated too (unless NOALT environment
+variable is set): either JPEG (if JPEG XL contains losslessly transcoded
+JPEG), or PNG (leaving off the alpha channel).
 
 If image file has corresponding .txt/.html, then it will be included on
 HTML page.
index 548b50aed7b69398c01653fdf99b2ae30b6c6428..7c8282145c523c55891f95ee634f5caca9d04fa6 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env zsh
 # Copyright (C) 2022-2023 Sergey Matveev <stargrave@stargrave.org>
 
-VERSION=0.5.0
+VERSION=0.6.0
 
 set -e
 
@@ -46,32 +46,36 @@ pages=$(( ${#imgs} / $pagesize ))
 local tmp=`mktemp`
 trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
 
-jpgs=()
-pngs=()
-pams=()
-for img ($imgs) {
-    [[ -r .info/$img.img ]]
-    [[ -r alt/$img.jpg ]] || [[ -r alt/$img.png ]] && : || {
-        grep -q "JPEG bitstream reconstruction" .info/$img.img &&
-            jpgs=($jpgs $img) || pngs=($pngs $img)
+[[ -n "$NOALT" ]] || {
+    echo HERE
+    exit
+    jpgs=()
+    pngs=()
+    pams=()
+    for img ($imgs) {
+        [[ -r .info/$img.img ]]
+        [[ -r alt/$img.jpg ]] || [[ -r alt/$img.png ]] && : || {
+            grep -q "JPEG bitstream reconstruction" .info/$img.img &&
+                jpgs=($jpgs $img) || pngs=($pngs $img)
+        }
+        [[ -r preview/$img.webp ]] || pams=($pams $img)
     }
-    [[ -r preview/$img.webp ]] || pams=($pams $img)
-}
 
-[[ ${#jpgs} == 0 ]] || {
-    echo JPEG reconstruction... >&2
-    parallel "djxl --quiet {} alt/{}.jpg && touch -r {} alt/{}.jpg" ::: $jpgs
-}
-jpgs=()
-
-djxl2pam="( djxl --quiet {} ppm:- || djxl --quiet {} pgm:- )"
-[[ ${#pngs} == 0 ]] || {
-    echo PNG generation... >&2
-    parallel "$djxl2pam | pamtopng > {}.png" ::: $pngs
-    parallel "pngcrush -warn -rem alla -rem allb -z 2 {}.png alt/{}.png && rm {}.png" ::: $pngs
-    parallel "advpng --quiet --recompress -4 alt/{}.png && touch -r {} alt/{}.png" ::: $pngs
+    [[ ${#jpgs} == 0 ]] || {
+        echo JPEG reconstruction... >&2
+        parallel "djxl --quiet {} alt/{}.jpg && touch -r {} alt/{}.jpg" ::: $jpgs
+    }
+    jpgs=()
+
+    djxl2pam="( djxl --quiet {} ppm:- || djxl --quiet {} pgm:- )"
+    [[ ${#pngs} == 0 ]] || {
+        echo PNG generation... >&2
+        parallel "$djxl2pam | pamtopng > {}.png" ::: $pngs
+        parallel "pngcrush -warn -rem alla -rem allb -z 2 {}.png alt/{}.png && rm {}.png" ::: $pngs
+        parallel "advpng --quiet --recompress -4 alt/{}.png && touch -r {} alt/{}.png" ::: $pngs
+    }
+    pngs=()
 }
-pngs=()
 
 mkpreview="pnmscale -w 100"
 mkpreview="$mkpreview | cwebp -quiet -pass 10 -alpha_filter best -m 6 -o preview/{}.webp -- -"
@@ -123,15 +127,17 @@ EOF
     echo "<pre>" >> $tmp
     cat .info/$img.img >> $tmp
     echo "</pre>" >> $tmp
-    if [[ $img:e = jxl ]] ; then
-        echo "Alternative formats:" >> $tmp
-        [[ -r alt/$img.jpg ]] && {
-            echo "<a href=\"alt/$img.jpg\">JPEG</a>" >> $tmp
-        } || {
-            echo "<a href=\"$img.png\">PNG</a>" >> $tmp
-        }
-    fi
-    echo "<hr/>" >> $tmp
+    [[ -n "$NOALT" ]] || {
+        if [[ $img:e = jxl ]] ; then
+            echo "Alternative formats:" >> $tmp
+            [[ -r alt/$img.jpg ]] && {
+                echo "<a href=\"alt/$img.jpg\">JPEG</a>" >> $tmp
+            } || {
+                echo "<a href=\"$img.png\">PNG</a>" >> $tmp
+            }
+        fi
+        echo "<hr/>" >> $tmp
+    }
     [[ -r .info/$img.exif ]]
     cat .info/$img.exif >> $tmp
     echo "</body></html>" >> $tmp