r3271 - in trunk/BOOK: introduction/welcome postlfs/config

randy at linuxfromscratch.org randy at linuxfromscratch.org
Wed Jan 12 15:53:34 PST 2005


Author: randy
Date: 2005-01-12 16:53:33 -0700 (Wed, 12 Jan 2005)
New Revision: 3271

Modified:
   trunk/BOOK/introduction/welcome/changelog.xml
   trunk/BOOK/postlfs/config/compressdoc.xml
Log:
Shortened line lengths in the compressdoc script

Modified: trunk/BOOK/introduction/welcome/changelog.xml
===================================================================
--- trunk/BOOK/introduction/welcome/changelog.xml	2005-01-12 22:20:25 UTC (rev 3270)
+++ trunk/BOOK/introduction/welcome/changelog.xml	2005-01-12 23:53:33 UTC (rev 3271)
@@ -26,7 +26,8 @@
 lcms-1.14 and GIMP-2.2.2.</para></listitem>
 
 <listitem><para>January 12th, 2005 [randy]: Moved OpenSSL instructions from 
-Chapter 8 to Chapter 4, suggested by Torsten Vollmann.</para></listitem>
+Chapter 8 to Chapter 4, suggested by Torsten Vollmann; shortened line lengths 
+in the compressdoc script.</para></listitem>
 
 <listitem><para>January 11th, 2005 [randy]: Moved libgtkhtml, GNOME-Doc-Utils 
 and Yelp from GNOME-Addons to GNOME-Core; added Cdrtools to Nautilus-CD-Burner 

Modified: trunk/BOOK/postlfs/config/compressdoc.xml
===================================================================
--- trunk/BOOK/postlfs/config/compressdoc.xml	2005-01-12 22:20:25 UTC (rev 3270)
+++ trunk/BOOK/postlfs/config/compressdoc.xml	2005-01-12 23:53:33 UTC (rev 3271)
@@ -5,28 +5,31 @@
   %general-entities;
 ]>
 
-<sect1 id="postlfs-config-compressdoc" xreflabel="compressdoc">
+<sect1 id="compressdoc" xreflabel="compressdoc">
 <sect1info>
 <othername>$LastChangedBy$</othername>
 <date>$Date$</date>
 </sect1info>
 <?dbhtml filename="compressdoc.html"?>
 <title>Compressing man and info pages</title>
+<indexterm zone="compressdoc">
+<primary sortas="b-compressdoc">compressdoc</primary></indexterm>
 
 <para>Man and info reader programs can transparently process gzip'ed or
 bzip2'ed pages, a feature you can use to free some disk space while keeping
 your documentation available. However, things are not that simple; man
-directories tend to contain links—hard and symbolic—which defeat simple
-ideas like recursively calling <command>gzip</command> on them. A better way 
-to go is to use the script below.
+directories tend to contain links—hard and symbolic—which defeat 
+simple ideas like recursively calling <command>gzip</command> on them. A 
+better way to go is to use the script below.
 </para>
 
 <screen><userinput><command>cat > /usr/sbin/compressdoc << "EOF"</command>
 #!/bin/bash
-# VERSION: 20040320.0026
+# VERSION: 20050112.0027
 #
 # Compress (with bzip2 or gzip) all man pages in a hierarchy and
 # update symlinks - By Marc Heerdink <marc @ koelkast.net>
+#
 # Modified to be able to gzip or bzip2 files as an option and to deal
 # with all symlinks properly by Mark Hymers <markh @ linuxfromscratch.org>
 #
@@ -35,19 +38,24 @@
 # to allow for changing hard-links into soft- ones, to specify the
 # compression level, to parse the man.conf for all occurrences of MANPATH,
 # to allow for a backup, to allow to keep the newest version of a page.
-# Modified 20040330 by Tushar Teredesai to replace $0 by the name of the script.
+#
+# Modified 20040330 by Tushar Teredesai to replace $0 by the name of the 
+# script.
 #   (Note: It is assumed that the script is in the user's PATH)
 #
+# Modified 20050112 by Randy McMurchy to shorten line lengths and
+# correct grammar errors.
+#
 # TODO:
-#        - choose a default compress method to be based on the available
-#          tool : gzip or bzip2;
-#        - offer an option to automagically choose the best compression method
-#          on a per page basis (eg. check which ofgzip/bzip2/whatever is the
-#          most effective, page per page);
-#        - when a MANPATH env var exists, use this instead of /etc/man.conf
-#          (useful for users to (de)compress their man pages;
-#        - offer an option to restore a previous backup;
-#        - add other compression engines (compress, zip, etc?). Needed?
+#     - choose a default compress method to be based on the available
+#       tool : gzip or bzip2;
+#     - offer an option to automagically choose the best compression 
+#       methed on a per page basis (eg. check which of 
+#       gzip/bzip2/whatever is the most effective, page per page);
+#     - when a MANPATH env var exists, use this instead of /etc/man.conf
+#       (useful for users to (de)compress their man pages;
+#     - offer an option to restore a previous backup;
+#     - add other compression engines (compress, zip, etc?). Needed?
 
 # Funny enough, this function prints some help.
 function help ()
@@ -65,73 +73,76 @@
   --decompress, -d
                 Decompress the man pages.
 
-  --backup      Specify a .tar backup shall be done for every directories.
-                In case a backup already exists, it is saved as .tar.old prior
-                to making the new backup. If an .tar.old backup exist, it is
-                removed prior to saving the backup.
+  --backup      Specify a .tar backup shall be done for all directories.
+                In case a backup already exists, it is saved as .tar.old 
+                prior to making the new backup. If a .tar.old backup 
+                exists, it is removed prior to saving the backup.
                 In backup mode, no other action is performed.
 
 And where options are :
   -1 to -9, --fast, --best
-                The compression level, as accepted by gzip and bzip2. When not
-                specified, uses the default compression level for the given
-                method (-6 for gzip, and -9 for bzip2). Not used when in backup
-                or decompress modes.
+                The compression level, as accepted by gzip and bzip2. 
+                When not specified, uses the default compression level 
+                for the given method (-6 for gzip, and -9 for bzip2). 
+                Not used when in backup or decompress modes.
 
-  --force, -F   Force (re-)compression, even if the previous one was the same
-                method. Useful when changing the compression ratio. By default,
-                a page will not be re-compressed if it ends with the same suffix
-                as the method adds (.bz2 for bzip2, .gz for gzip).
+  --force, -F   Force (re-)compression, even if the previous one was 
+                the same method. Useful when changing the compression 
+                ratio. By default, a page will not be re-compressed if 
+                it ends with the same suffix as the method adds 
+                (.bz2 for bzip2, .gz for gzip).
 
-  --soft, -S    Change hard-links into soft-links. Use with _caution_ as the
-                first encountered file will be used as a reference. Not used
-                when in backup mode.
+  --soft, -S    Change hard-links into soft-links. Use with _caution_ 
+                as the first encountered file will be used as a 
+                reference. Not used when in backup mode.
 
-  --hard, -H    Change soft-links into hard-links. Not used when in backup mode.
+  --hard, -H    Change soft-links into hard-links. Not used when in 
+                backup mode.
 
   --conf=dir, --conf dir
                 Specify the location of man.conf. Defaults to /etc.
 
-  --verbose, -v Verbose mode, print the name of the directory being processed.
-                Double the flag to turn it even more verbose, and to print the
-                name of the file being processed.
+  --verbose, -v Verbose mode, print the name of the directory being 
+                processed. Double the flag to turn it even more verbose, 
+                and to print the name of the file being processed.
 
   --fake, -f    Fakes it. Print the actual parameters compman will use.
 
-  dirs          A list of space-separated _absolute_ pathname to the man
-                directories.
-                When empty, and only then, parse ${MAN_CONF}/man.conf for all
-                occurrences of MANPATH.
+  dirs          A list of space-separated _absolute_ pathnames to the 
+                man directories. When empty, and only then, parse 
+                ${MAN_CONF}/man.conf for all occurrences of MANPATH.
 
-Note about compression
+Note about compression:
   There has been a discussion on blfs-support about compression ratios of
   both gzip and bzip2 on man pages, taking into account the hosting fs,
   the architecture, etc... On the overall, the conclusion was that gzip
-  was much efficient on 'small' files, and bzip2 on 'big' files, small and
-  big being very dependent on the content of the files.
+  was much more efficient on 'small' files, and bzip2 on 'big' files, 
+  small and big being very dependent on the content of the files.
 
-  See the original post from Mickael A. Peters, titled "Bootable Utility CD",
-  and dated 20030409.1816(+0200), and subsequent posts:
+  See the original post from Mickael A. Peters, titled 
+  "Bootable Utility CD", dated 20030409.1816(+0200), and subsequent posts:
   http://linuxfromscratch.org/pipermail/blfs-support/2003-April/038817.html
 
-  On my system (x86, ext3), man pages were 35564kiB before compression. gzip -9
-  compressed them down to 20372kiB (57.28%), bzip2 -9 got down to 19812kiB
-  (55.71%). That is a 1.57% gain in space. YMMV.
+  On my system (x86, ext3), man pages were 35564KB before compression. 
+  gzip -9 compressed them down to 20372KB (57.28%), bzip2 -9 got down to 
+  19812KB (55.71%). That is a 1.57% gain in space. YMMV.
 
-  What was not taken into consideration was the decompression speed. But does
-  it make sense to? You gain fast access with uncompressed man pages, or you
-  gain space at the expense of a slight overhead in time. Well, my P4-2.5GHz
-  does not even let me notice this... :-)
+  What was not taken into consideration was the decompression speed. But 
+  does it make sense to? You gain fast access with uncompressed man 
+  pages, or you gain space at the expense of a slight overhead in time. 
+  Well, my P4-2.5GHz does not even let me notice this... :-)
+
 EOT
 ) | less
 }
 
-# This function checks that the man page is unique amongst bzip2'd, gzip'd and
-# uncompressed versions.
+# This function checks that the man page is unique amongst bzip2'd, 
+# gzip'd and uncompressed versions.
 #  $1 the directory in which the file resides
 #  $2 the file name for the man page
-# Returns 0 (true) if the file is the latest and must be taken care of, and 1
-# (false) if the file is not the latest (and has therefore been deleted).
+# Returns 0 (true) if the file is the latest and must be taken care of, 
+# and 1 (false) if the file is not the latest (and has therefore been 
+# deleted).
 function check_unique ()
 {
   # NB. When there are hard-links to this file, these are
@@ -147,7 +158,8 @@
   BZ_FILE="$BASENAME".bz2
 
   # Look for, and keep, the most recent one
-  LATEST=`(cd "$DIR"; ls -1rt "${BASENAME}" "${GZ_FILE}" "${BZ_FILE}" 2>/dev/null | tail -n 1)`
+  LATEST=`(cd "$DIR"; ls -1rt "${BASENAME}" "${GZ_FILE}" "${BZ_FILE}" \
+         2>/dev/null | tail -n 1)`
   for i in "${BASENAME}" "${GZ_FILE}" "${BZ_FILE}"; do
     [ "$LATEST" != "$i" ] && rm -f "$DIR"/"$i"
   done
@@ -161,9 +173,10 @@
 # Name of the script
 MY_NAME=`basename $0`
 
-# OK, parse the command-line for arguments, and initialize to some sensible
-# state, that is : don't change links state, parse /etc/man.conf, be most
-# silent, search man.conf in /etc, and don't force (re-)compression.
+# OK, parse the command-line for arguments, and initialize to some 
+# sensible state, that is: don't change links state, parse 
+# /etc/man.conf, be most silent, search man.conf in /etc, and don't 
+# force (re-)compression.
 COMP_METHOD=
 COMP_SUF=
 COMP_LVL=
@@ -269,7 +282,8 @@
      ;;
 esac
 
-# Note: on my machine, 'man --path' gives /usr/share/man twice, once with a trailing '/', once without.
+# Note: on my machine, 'man --path' gives /usr/share/man twice, once 
+# with a trailing '/', once without.
 if [ -z "$MAN_DIR" ]; then
   MAN_DIR=`man --path -C "$MAN_CONF"/man.conf \
             | sed 's/:/\\n/g' \
@@ -301,9 +315,11 @@
   [ "foo$FORCE_OPT" = "foo-F" ] && echo "yes" || echo "no"
   echo "man.conf is.......: ${MAN_CONF}/man.conf"
   echo -n "Hard-links........: "
-  [ "foo$LN_OPT" = "foo-S" ] && echo "convert to soft-links" || echo "leave as is"
+  [ "foo$LN_OPT" = "foo-S" ] && 
+  echo "convert to soft-links" || echo "leave as is"
   echo -n "Soft-links........: "
-  [ "foo$LN_OPT" = "foo-H" ] && echo "convert to hard-links" || echo "leave as is"
+  [ "foo$LN_OPT" = "foo-H" ] && 
+  echo "convert to hard-links" || echo "leave as is"
   echo "Backup............: $BACKUP"
   echo "Faking (yes!).....: $FAKE"
   echo "Directories.......: $MAN_DIR"
@@ -324,7 +340,8 @@
     DIR_NAME=`basename "${DIR}"`
     echo "Backing up $DIR..." > $DEST_FD0
     [ -f "${DIR_NAME}.tar.old" ] && rm -f "${DIR_NAME}.tar.old"
-    [ -f "${DIR_NAME}.tar" ] && mv "${DIR_NAME}.tar" "${DIR_NAME}.tar.old"
+    [ -f "${DIR_NAME}.tar" ] && 
+    mv "${DIR_NAME}.tar" "${DIR_NAME}.tar.old"
     tar cfv "${DIR_NAME}.tar" "${DIR_NAME}" > $DEST_FD1
   done
   exit 0
@@ -340,21 +357,24 @@
     if [ "foo$FILE" = "foo*" ]; then continue; fi
 
     # Fixes the case when hard-links see their compression scheme change
-    # (from not compressed to compressed, or from bz2 to gz, or from gz to bz2)
-    # Also fixes the case when multiple version of the page are present, which
-    # are either compressed or not.
+    # (from not compressed to compressed, or from bz2 to gz, or from gz 
+    # to bz2)
+    # Also fixes the case when multiple version of the page are present, 
+    # which are either compressed or not.
     if [ ! -L "$FILE" -a ! -e "$FILE" ]; then continue; fi
 
     # Do not compress whatis files
     if [ "$FILE" = "whatis" ]; then continue; fi
 
     if [ -d "$FILE" ]; then
-      cd "${MEM_DIR}"  # Go back to where we ran "$0", in case "$0"=="./compressdoc" ...
+      cd "${MEM_DIR}"  # Go back to where we ran "$0", 
+                       # in case "$0"=="./compressdoc" ...
       # We are going recursive to that directory
       echo "-> Entering ${DIR}/${FILE}..." > $DEST_FD0
       # I need not pass --conf, as I specify the directory to work on
       # But I need exit in case of error
-      "$MY_NAME" ${COMP_METHOD} ${COMP_LVL} ${LN_OPT} ${VERBOSE_OPT} ${FORCE_OPT} "${DIR}/${FILE}" || exit 1
+      "$MY_NAME" ${COMP_METHOD} ${COMP_LVL} ${LN_OPT} ${VERBOSE_OPT} 
+      ${FORCE_OPT} "${DIR}/${FILE}" || exit 1
       echo "<- Leaving ${DIR}/${FILE}." > $DEST_FD1
       cd "$DIR"  # Needed for the next iteration of the loop
 
@@ -364,7 +384,8 @@
       # Check if the file is already compressed with the specified method
       BASE_FILE=`basename "$FILE" .gz`
       BASE_FILE=`basename "$BASE_FILE" .bz2`
-      if [ "${FILE}" = "${BASE_FILE}${COMP_SUF}" -a "foo${FORCE_OPT}" = "foo" ]; then continue; fi
+      if [ "${FILE}" = "${BASE_FILE}${COMP_SUF}" \
+         -a "foo${FORCE_OPT}" = "foo" ]; then continue; fi
 
       # If we have a symlink
       if [ -h "$FILE" ]; then
@@ -378,7 +399,8 @@
         esac
 
         if [ ! "$EXT" = "none" ]; then
-          LINK=`ls -l "$FILE" | cut -d ">" -f2 | tr -d " " | sed s/\.$EXT$//`
+          LINK=`ls -l "$FILE" | cut -d ">" -f2 \
+               | tr -d " " | sed s/\.$EXT$//`
           NEWNAME=`echo "$FILE" | sed s/\.$EXT$//`
           mv "$FILE" "$NEWNAME"
           FILE="$NEWNAME"
@@ -400,8 +422,9 @@
       elif [ -f "$FILE" ]; then
         # Take care of hard-links: build the list of files hard-linked
         # to the one we are {de,}compressing.
-        # NB. This is not optimum has the file will eventually be compressed
-        # as many times it has hard-links. But for now, that's the safe way.
+        # NB. This is not optimum has the file will eventually be 
+        # compressed as many times it has hard-links. But for now, 
+        # that's the safe way.
         inode=`ls -li "$FILE" | awk '{print $1}'`
         HLINKS=`find . \! -name "$FILE" -inum $inode`
 
@@ -450,20 +473,23 @@
               # Keep the hard-link a hard- one
               ln "${FILE}$COMP_SUF" "${NEWFILE}$COMP_SUF"
             fi
-            chmod 644 "${NEWFILE}$COMP_SUF" # Really work only for hard-links. Harmless for soft-links
+            # Really work only for hard-links. Harmless for soft-links
+            chmod 644 "${NEWFILE}$COMP_SUF"
           done
         fi
 
       else
-        # There is a problem when we get neither a symlink nor a plain file
-        # Obviously, we shall never ever come here... :-(
-        echo "Whaooo... \"${DIR}/${FILE}\" is neither a symlink nor a plain file. Please check:"
+        # There is a problem when we get neither a symlink nor a plain 
+        # file. Obviously, we shall never ever come here... :-(
+        echo -n "Whaooo... \"${DIR}/${FILE}\" is neither a symlink "
+        echo "nor a plain file. Please check:"
         ls -l "${DIR}/${FILE}"
         exit 1
       fi
     fi
   done # for FILE
 done # for DIR
+
 <command>EOF
 chmod 755 /usr/sbin/compressdoc</command></userinput></screen>
 
@@ -474,12 +500,14 @@
 
 <para> Don't forget that a few programs, like the <application>X</application> 
 Window System and <application>XEmacs</application> also install their 
-documentation in non standard places (such as <filename class="directory"> 
-/usr/X11R6/man</filename>, etc...). Be sure to add these locations to the 
-file <filename>/etc/man.conf</filename>, as a
-<envar>MANPATH</envar>=<replaceable>/path</replaceable> section.</para>
-<para> Example:</para><screen><userinput>
-    ...
+documentation in non standard places (such as 
+<filename class="directory">/usr/X11R6/man</filename>, etc...). Be sure to add 
+these locations to the file <filename>/etc/man.conf</filename>, as a 
+<envar>MANPATH</envar>=<replaceable>[/path]</replaceable> section.</para>
+
+<para> Example:</para>
+
+<screen><userinput>    ...
     MANPATH=/usr/share/man
     MANPATH=/usr/local/man
     MANPATH=/usr/X11R6/man




More information about the blfs-book mailing list