⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen-dir-node

📁 gcc-2.95.3 Linux下最常用的C编译器
💻
字号:
#!/bin/sh# $Id: gen-dir-node,v 1.1.1.2 1998/03/22 20:43:12 law Exp $# Generate the top-level Info node, given a directory of Info files# and (optionally) a skeleton file.  The output will be suitable for a# top-level dir file.  The skeleton file contains info topic names in the# order they should appear in the output.  There are three special# lines that alter the behavior: a line consisting of just "--" causes# the next line to be echoed verbatim to the output.  A line# containing just "%%" causes all the remaining filenames (wildcards# allowed) in the rest of the file to be ignored.  A line containing# just "!!" exits the script when reached (unless preceded by a line# containing just "--").  Once the script reaches the end of the# skeleton file, it goes through the remaining files in the directory# in order, putting their entries at the end.  The script will use the# ENTRY information in each info file if it exists.  Otherwise it will# make a minimal entry.# sent by Jeffrey Osier <jeffrey@cygnus.com>, who thinks it came from# zoo@winternet.com (david d `zoo' zuhn)# modified 7 April 1995 by Joe Harrington <jh@tecate.gsfc.nasa.gov> to# take special flagsINFODIR=$1if [ $# = 2 ] ; then  SKELETON=$2else  SKELETON=/dev/nullfiskip=if [ $# -gt 2 ] ; then  echo usage: $0 info-directory [ skeleton-file ] 1>&2  exit 1else  truefiif [ ! -d ${INFODIR} ] ; then  echo "$0: first argument must specify a directory"  exit 1fi### output the dir headerecho "-*- Text -*-"echo "This file was generated automatically by $0."echo "This version was generated on `date`"echo "by `whoami`@`hostname` for `(cd ${INFODIR}; pwd)`"cat << mooblerThis is the file .../info/dir, which contains the topmost node of theInfo hierarchy.  The first time you invoke Info you start offlooking 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.  Or click mouse button 2 on a menu item or cross reference to select it.  --- 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 skeleton.  If an info file### exists, grab the ENTRY information from it.  If an entry exists### use it, otherwise create a minimal dir entry.###### Then remove that file from the list of existing files.  If any### additional files remain (ones that don't have a skeleton entry), ### then generate entries for those in the same way, putting the info for ### those at the end....infofiles=`(cd ${INFODIR}; ls | egrep -v '\-|^dir$|^dir\.info$|^dir\.orig$')`# echoing gets clobbered by backquotes; we do it the hard way...lines=`wc $SKELETON | awk '{print $1}'`line=1while [ $lines -ge $line ] ; do  # Read one line from the file.  This is so that we can echo lines with  # whitespace and quoted characters in them.  fileline=`awk NR==$line $SKELETON`  # flag fancy features  if [ ! -z "$echoline" ] ; then	# echo line    echo "$fileline"    fileline=    echoline=  elif [ "${fileline}" = "--" ] ; then	# should we echo the next line?    echoline=1  elif [ "${fileline}" = "%%" ] ; then	# eliminate remaining files from dir?    skip=1  elif [ "${fileline}" = "!!" ] ; then	# quit now    exit 0  fi  # handle files if they exist  for file in $fileline"" ; do	# expand wildcards ("" handles blank lines)    fname=    if [ -z "$echoline" -a ! -z "$file" ] ; then      # Find the file to operate upon.  Check both possible names.      infoname=`echo $file | sed 's/\.info$//'`      noext=      ext=      if [ -f ${INFODIR}/$infoname ] ; then        noext=$infoname      fi      if [ -f ${INFODIR}/${infoname}.info ] ; then        ext=${infoname}.info      fi      # If it exists with both names take what was said in the file.      if [ ! -z "$ext" -a ! -z "$noext" ]; then        fname=$file        warn="### Warning: $ext and $noext both exist!  Using ${file}. ###"      elif [ ! \( -z "$ext" -a -z "$noext" \) ]; then        # just take the name if it exists only once        fname=${noext}${ext}      fi      # if we found something and aren't skipping, do the entry      if [ ! -z "$fname" ] ; then        if [ -z "$skip" ] ; then          if [ ! -z "$warn" ] ; then	# issue any warning	    echo $warn	    warn=          fi          entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \		     -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/$fname`          if [ ! -z "${entry}" ] ; then            echo "${entry}"          else            echo "* ${infoname}: (${fname})."          fi        fi        # remove the name from the directory listing        infofiles=`echo ${infofiles} | sed -e "s/ ${fname} / /" \					 -e "s/^${fname} //" \					 -e "s/ ${fname}$//"`      fi    fi  done  line=`expr $line + 1`doneif [ -z "${infofiles}" ] ; then  exit 0else  echofifor file in ${infofiles}; do  case $file in    *.gz) zcat=zcat; file=`echo $file|sed 's/\.gz$//'`; gz=.gz;;    *) zcat=cat; gz=;;  esac  infoname=`echo $file | sed 's/\.info$//'`  entry=`$zcat ${INFODIR}/${file}$gz \           |sed -e '1,/START-INFO-DIR-ENTRY/d' \		-e '/END-INFO-DIR-ENTRY/,$d'`  if [ ! -z "${entry}" ] ; then    echo "${entry}"  else    echo "* ${infoname}: (${file})."  fidone

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -