bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gendocs.sh nits


From: Ralf Wildenhues
Subject: gendocs.sh nits
Date: Wed, 17 May 2006 19:08:45 +0200
User-agent: Mutt/1.5.11

Hi there,

I found a very tiny nit in gendocs.sh: using "`foobar \"baz\"`"
is not portable: it will fail on OpenBSD, for example, which uses
a modified pdksh as /bin/sh.  Not that it's likely to be used much
there, but I don't see why this simple script shouldn't be portable.
Luckily, shells don't word-split the right hand side of assignments
anyway, so this construct wasn't necessary in the first place.

So then, I got ambitious, and went through the whole file fixing
quoting, as typically the quotes are just placed exactly wrong.  ;-)
(The script still assumes that $outdir and $PACKAGE don't contain
weird characters like spaces and such, but that is pretty safe.)

Last but not least, the URLs in the output of `./gendocs.sh --help'
were not right.

Cheers,
Ralf

2006-05-17  Ralf Wildenhues  <address@hidden>

        * util/gendocs.sh: Update URLs to where this script may be
        found.  Fix shell quoting.

Index: util/gendocs.sh
===================================================================
RCS file: /cvsroot/texinfo/texinfo/util/gendocs.sh,v
retrieving revision 1.16
diff -u -r1.16 gendocs.sh
--- util/gendocs.sh     15 May 2005 00:00:08 -0000      1.16
+++ util/gendocs.sh     17 May 2006 16:55:50 -0000
@@ -3,7 +3,7 @@
 #   mentioned in maintain.texi.  See the help message below for usage details.
 # $Id: gendocs.sh,v 1.16 2005/05/15 00:00:08 karl Exp $
 # 
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -23,11 +23,11 @@
 # Original author: Mohit Agarwal.
 # Send bug reports and any other correspondence to address@hidden
 
-prog="`basename \"$0\"`"
+prog=`basename "$0"`
 srcdir=`pwd`
 
-scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh";
-templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template";
+scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh";
+templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template";
 
 : ${MAKEINFO="makeinfo"}
 : ${TEXI2DVI="texi2dvi -t @finalout"}
@@ -41,10 +41,10 @@
 
 rcs_revision='$Revision: 1.16 $'
 rcs_version=`set - $rcs_revision; echo $2`
-program=`echo $0 | sed -e 's!.*/!!'`
+program=`echo "$0" | sed -e 's!.*/!!'`
 version="gendocs.sh $rcs_version
 
-Copyright (C) 2005 Free Software Foundation, Inc.
+Copyright (C) 2006 Free Software Foundation, Inc.
 There is NO warranty.  You may redistribute this software
 under the terms of the GNU General Public License.
 For more information about these matters, see the files named COPYING."
@@ -94,7 +94,7 @@
 
 calcsize()
 {
-  size="`ls -ksl $1 | awk '{print $1}'`"
+  size=`ls -ksl $1 | awk '{print $1}'`
   echo $size
 }
 
@@ -127,11 +127,11 @@
   shift
 done
 
-if test -s $srcdir/$PACKAGE.texinfo; then
+if test -s "$srcdir/$PACKAGE.texinfo"; then
   srcfile=$srcdir/$PACKAGE.texinfo
-elif test -s $srcdir/$PACKAGE.texi; then
+elif test -s "$srcdir/$PACKAGE.texi"; then
   srcfile=$srcdir/$PACKAGE.texi
-elif test -s $srcdir/$PACKAGE.txi; then
+elif test -s "$srcdir/$PACKAGE.txi"; then
   srcfile=$srcdir/$PACKAGE.txi
 else
   echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
@@ -146,63 +146,63 @@
 
 echo Generating output formats for $srcfile
 
-cmd="${MAKEINFO} -o $PACKAGE.info $srcfile"
+cmd="${MAKEINFO} -o $PACKAGE.info \"$srcfile\""
 echo "Generating info files... ($cmd)"
-eval $cmd
+eval "$cmd"
 mkdir -p $outdir/
 tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info*
-info_tgz_size="`calcsize $outdir/$PACKAGE.info.tar.gz`"
+info_tgz_size=`calcsize $outdir/$PACKAGE.info.tar.gz`
 # do not mv the info files, there's no point in having them available
 # separately on the web.
 
-cmd="${TEXI2DVI} $srcfile"
+cmd="${TEXI2DVI} \"$srcfile\""
 echo "Generating dvi ... ($cmd)"
-eval $cmd
+eval "$cmd"
 
 # now, before we compress dvi:
 echo Generating postscript...
 ${DVIPS} $PACKAGE -o
 gzip -f -9 $PACKAGE.ps
-ps_gz_size="`calcsize $PACKAGE.ps.gz`"
+ps_gz_size=`calcsize $PACKAGE.ps.gz`
 mv $PACKAGE.ps.gz $outdir/
 
 # compress/finish dvi:
 gzip -f -9 $PACKAGE.dvi
-dvi_gz_size="`calcsize $PACKAGE.dvi.gz`"
+dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
 mv $PACKAGE.dvi.gz $outdir/
 
-cmd="${TEXI2DVI} --pdf $srcfile"
+cmd="${TEXI2DVI} --pdf \"$srcfile\""
 echo "Generating pdf ... ($cmd)"
-eval $cmd
-pdf_size="`calcsize $PACKAGE.pdf`"
+eval "$cmd"
+pdf_size=`calcsize $PACKAGE.pdf`
 mv $PACKAGE.pdf $outdir/
 
-cmd="${MAKEINFO} -o $PACKAGE.txt --no-split --no-headers $srcfile"
+cmd="${MAKEINFO} -o $PACKAGE.txt --no-split --no-headers \"$srcfile\""
 echo "Generating ASCII... ($cmd)"
-eval $cmd
-ascii_size="`calcsize $PACKAGE.txt`"
+eval "$cmd"
+ascii_size=`calcsize $PACKAGE.txt`
 gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz
-ascii_gz_size="`calcsize $outdir/$PACKAGE.txt.gz`"
+ascii_gz_size=`calcsize $outdir/$PACKAGE.txt.gz`
 mv $PACKAGE.txt $outdir/
 
-cmd="${MAKEINFO} --no-split --html -o $PACKAGE.html $html $srcfile"
+cmd="${MAKEINFO} --no-split --html -o $PACKAGE.html $html \"$srcfile\""
 echo "Generating monolithic html... ($cmd)"
 rm -rf $PACKAGE.html  # in case a directory is left over
-eval $cmd
-html_mono_size="`calcsize $PACKAGE.html`"
+eval "$cmd"
+html_mono_size=`calcsize $PACKAGE.html`
 gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
-html_mono_gz_size="`calcsize $outdir/$PACKAGE.html.gz`"
+html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
 mv $PACKAGE.html $outdir/
 
-cmd="${MAKEINFO} --html -o $PACKAGE.html $html $srcfile"
+cmd="${MAKEINFO} --html -o $PACKAGE.html $html \"$srcfile\""
 echo "Generating html by node... ($cmd)"
-eval $cmd
+eval "$cmd"
 split_html_dir=$PACKAGE.html
 (
   cd ${split_html_dir} || exit 1
   tar -czf ../$outdir/${PACKAGE}.html_node.tar.gz -- *.html
 )
-html_node_tgz_size="`calcsize $outdir/${PACKAGE}.html_node.tar.gz`"
+html_node_tgz_size=`calcsize $outdir/${PACKAGE}.html_node.tar.gz`
 rm -f $outdir/html_node/*.html
 mkdir -p $outdir/html_node/
 mv ${split_html_dir}/*.html $outdir/html_node/
@@ -211,26 +211,26 @@
 echo Making .tar.gz for sources...
 srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null`
 tar cvzfh $outdir/$PACKAGE.texi.tar.gz $srcfiles
-texi_tgz_size="`calcsize $outdir/$PACKAGE.texi.tar.gz`"
+texi_tgz_size=`calcsize $outdir/$PACKAGE.texi.tar.gz`
 
 if test -n "$docbook"; then
-  cmd="${MAKEINFO} -o - --docbook $srcfile > ${srcdir}/$PACKAGE-db.xml"
+  cmd="${MAKEINFO} -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml"
   echo "Generating docbook XML... $(cmd)"
-  eval $cmd
-  docbook_xml_size="`calcsize $PACKAGE-db.xml`"
+  eval "$cmd"
+  docbook_xml_size=`calcsize $PACKAGE-db.xml`
   gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz
-  docbook_xml_gz_size="`calcsize $outdir/$PACKAGE-db.xml.gz`"
+  docbook_xml_gz_size=`calcsize $outdir/$PACKAGE-db.xml.gz`
   mv $PACKAGE-db.xml $outdir/
 
   cmd="${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml"
   echo "Generating docbook HTML... ($cmd)"
-  eval $cmd
+  eval "$cmd"
   split_html_db_dir=html_node_db
   (
     cd ${split_html_db_dir} || exit 1
     tar -czf ../$outdir/${PACKAGE}.html_node_db.tar.gz -- *.html
   )
-  html_node_db_tgz_size="`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz`"
+  html_node_db_tgz_size=`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz`
   rm -f $outdir/html_node_db/*.html
   mkdir -p $outdir/html_node_db
   mv ${split_html_db_dir}/*.html $outdir/html_node_db/
@@ -238,26 +238,26 @@
 
   cmd="${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml"
   echo "Generating docbook ASCII... ($cmd)"
-  eval $cmd
-  docbook_ascii_size="`calcsize $PACKAGE-db.txt`"
+  eval "$cmd"
+  docbook_ascii_size=`calcsize $PACKAGE-db.txt`
   mv $PACKAGE-db.txt $outdir/
 
   cmd="${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml"
   echo "Generating docbook PS... $(cmd)"
-  eval $cmd
+  eval "$cmd"
   gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz
-  docbook_ps_gz_size="`calcsize $outdir/$PACKAGE-db.ps.gz`"
+  docbook_ps_gz_size=`calcsize $outdir/$PACKAGE-db.ps.gz`
   mv $PACKAGE-db.ps $outdir/
 
   cmd="${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml"
   echo "Generating docbook PDF... ($cmd)"
-  eval $cmd
-  docbook_pdf_size="`calcsize $PACKAGE-db.pdf`"
+  eval "$cmd"
+  docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
   mv $PACKAGE-db.pdf $outdir/
 fi
 
 echo Writing index file...
-curdate="`date '+%B %d, %Y'`"
+curdate=`date '+%B %d, %Y'`
 sed \
    -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
    -e "s!%%DATE%%!$curdate!g" \




reply via email to

[Prev in Thread] Current Thread [Next in Thread]