diff options
Diffstat (limited to 'source/ap/texinfo/update-info-dir')
-rw-r--r-- | source/ap/texinfo/update-info-dir | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/source/ap/texinfo/update-info-dir b/source/ap/texinfo/update-info-dir new file mode 100644 index 000000000..ea67bb107 --- /dev/null +++ b/source/ap/texinfo/update-info-dir @@ -0,0 +1,82 @@ +#!/bin/sh +# update-info-dir +# create a dir file from all installed info files +# Copyright 2009, 2014 Norbert Preining +# GPLv2 + +INFODIR=/usr/info + +set -e + +# +# since user's environment is taken over into root account when sudo-ing +# we don't want that one's user LANGUAGE setting changes the messages in +# the dir file. Unset LANGUAGE and reload /etc/environment to get +# the system wide settings. See bug #536476 +unset LANGUAGE +unset LANG +if [ -r /etc/environment ] ; then + . /etc/environment +fi +if [ -r /etc/default/locale ] ; then + . /etc/default/locale +fi + +Help () +{ + echo "\ +SYNOPSIS: update-info-dir [-h,--help] [info-directory] + +(re-)creates the index of available documentation in info format +(the file $(echo $INFODIR)/dir) which is usually presented by info browsers +on startup." + + exit 0 +} + + +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + Help +fi + +if [ -n "$1" ] ; then + INFODIR="$1" +fi + +if [ ! -d "$INFODIR" ] ; then + echo "Not a directory: $INFODIR." >&2 + exit 1 +fi + +if [ -r "$INFODIR/dir" ] ; then + rm -f "$INFODIR/dir.old" + cp $INFODIR/dir $INFODIR/dir.old +fi + +# we have to remove the dir file not make install-info being surprised +rm -f "$INFODIR/dir" + +errors=0 +find "$INFODIR" -type f | while read file ; do + case $file in + */dir|*/dir.gz|*/dir.old|*/dir.old.gz|*-[0-9]|*-[0-9].gz|*-[1-9][0-9]|*-[1-9][0-9].gz|*.png|*.jpg) + # these files are ignored + continue + ;; + *) + install-info "$file" "$INFODIR/dir" || { + errors=$((errors+1)) + } + ;; + esac +done + +if [ $errors -gt 0 ] ; then + exec >&2 + echo + echo "Updating the index of info documentation produced $errors errors." +fi + +exit 0 + +# vim:set expandtab tabstop=2: # |