commit:     6c930dc94691fd01d5d5d5096c8ab92e66a40064
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  7 15:05:10 2019 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Thu Nov  7 15:05:10 2019 +0000
URL:        https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=6c930dc9

bin/gen-eclass-html.sh: Work for all common compression methods

Signed-off-by: Brian Evans <grknight <AT> gentoo.org>

 bin/gen-eclass-html.sh | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/bin/gen-eclass-html.sh b/bin/gen-eclass-html.sh
index d3b0cf2..8c9c337 100755
--- a/bin/gen-eclass-html.sh
+++ b/bin/gen-eclass-html.sh
@@ -35,13 +35,28 @@ IFS='' read -r -d '' FOOTER << 'EOF'
 </html>
 EOF
 
+guesscompress() {
+       case "$1" in
+               *.gz|*.z)       echo "gunzip -c" ;;
+               *.bz2|*.bz)     echo "bunzip2 -c" ;;
+               *.lz)           echo "lzip -dc" ;;
+               *.lzma)         echo "unlzma -c" ;;
+               *.lzo)          echo "lzop -dc" ;;
+               *.xz)           echo "xzdec" ;;
+               *.zst)          echo "zstd -dc" ;;
+               *)              echo "cat" ;;
+       esac
+}
+
 # We also need the ebuild man page
-for i in $(/usr/bin/qlist eclass-manpages) /usr/share/man/man5/ebuild.5.bz2; do
-       BASENAME="$(basename $i .5.bz2)"
-       [[ ${BASENAME} != "${i##*/}" ]] || continue
+for i in $(/usr/bin/qlist eclass-manpages) /usr/share/man/man5/ebuild.5*; do
+       FILEBASE=${i##*/}
+       BASENAME="${FILEBASE%.5*}"
+       [[ ${BASENAME} != "${FILEBASE}" ]] || continue
        DIRNAME="${OUTPUTDIR}/${BASENAME}"
        TMP="${DIRNAME}/index.html.tmp"
        FINAL="${DIRNAME}/index.html"
+       DECOMPRESS=$(guesscompress "${i}")
        [[ -d ${DIRNAME} ]] || mkdir -p ${DIRNAME}
        # rebuild the man page each time
        cat << EOF > ${FINAL}
@@ -89,7 +104,7 @@ for i in $(/usr/bin/qlist eclass-manpages) 
/usr/share/man/man5/ebuild.5.bz2; do
        <div class="container">
 EOF
     # generate html pages and fix hyperlinks for eclass and ebuild man pages
-    /bin/bunzip2 -c $i | /usr/bin/man2html -r - | \
+    $DECOMPRESS "$i" | /usr/bin/man2html -r - | \
     sed -e "/<A HREF=/s:=.*man.*/\(.*eclass\).*html\">:=../\1/index.html>:" \
     -e "/<\/BODY>/d" -e "/<\/HTML>/d"  \
     -e "/<A HREF=/s:=.*man.*/\(.*ebuild\).*html\">:=../\1/\index.html>:" >> 
${TMP}

Reply via email to