summaryrefslogtreecommitdiffstats
path: root/source/ap/texinfo/update-info-dir
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/texinfo/update-info-dir')
-rw-r--r--source/ap/texinfo/update-info-dir82
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: #