NetBSD/gnu/dist/toolchain/texinfo/gen-info-dir

102 lines
2.6 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
#
# generate an Info directory, given a directory of Info files and a
# list of entries. The output will be suitable for a dir.info file,
# in the order given in the skeleton file
INFODIR=$1
if [ $# = 2 ] ; then
SKELETON=$2
else
SKELETON=/dev/null
fi
skip=
if [ $# -gt 2 ] ; then
echo usage: $0 info-directory [ skeleton-file ] 1>&2
exit 1
else
true
fi
if [ ! -d ${INFODIR} ] ; then
echo "$0: first argument must specify a directory"
exit 1
fi
infofiles=`(cd ${INFODIR}; ls *.info | sort | sed "s/dir\.info//")`
template=`cat ${SKELETON}`
### output the dir.info header
echo "-*- Text -*-"
echo "This file was generated automatically by the gen-info-dir script."
echo "This version was generated on `date`"
echo "by `whoami`@`hostname` for `(cd ${INFODIR}; pwd)`"
cat << moobler
This is the file .../info/dir, which contains the topmost node of the
Info hierarchy. The first time you invoke Info you start off
looking at that node, which is (dir)Top.

File: dir Node: Top This is the top of the INFO tree
This (the Directory node) gives a menu of major topics.
Typing "d" returns here, "q" exits, "?" lists all INFO commands, "h"
gives a primer for first-timers, "mTexinfo<Return>" visits Texinfo topic,
etc.
--- PLEASE ADD DOCUMENTATION TO THIS TREE. (See INFO topic first.) ---
* Menu: The list of major topics begins on the next line.
moobler
### go through the list of files in the template. If an info file
### exists, grab the ENTRY information from it. If there is no entry
### info, then create a minimal dir entry, otherwise use the given info.
###
### Then remove that file from the list of existing files. If any
### additional files remain (ones that don't have a template entry),
### then generate entries for those in the same way, putting the info for
### those at the very end....
for file in ${template} ; do
if [ "${file}" = "--" ] ; then
skip=1
else
if [ -f ${INFODIR}/${file}.info ] ; then
entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/${file}.info`
if [ ! -z "${skip}" ] ; then
echo
skip=
fi
if [ ! -z "${entry}" ] ; then
echo "${entry}"
else
echo "* ${file}: (${file})."
fi
infofiles=`echo ${infofiles} | sed -e "s/${file}\.info//"`
fi
fi
done
if [ -z "${infofiles}" ] ; then
exit 0
else
echo
fi
for file in ${infofiles}; do
entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/${file}`
if [ ! -z "${entry}" ] ; then
echo "${entry}"
else
echo "* ${file}: (${file})."
fi
done