This is mkpath.sh in view mode; [Download] [Up]
#! /bin/sh # @(#)util/mkpath.sh 1.2 24 Oct 1990 05:26:39 # # mkpath - make a pathalias output file # # Copyright (C) 1988 Ronald S. Karr and Landon Curt Noll # # See the file COPYING, distributed with smail, for restriction # and warranty information. # Usage: # mkpath [-v] [-V] [-x] [-e] [-n] [-t trace] [path_config] # # -v verbose mode for mkpath, execution block commands # are executed with the sh(1) -v flag # -V pathalias(8) runs with '-v' verbose mode # -x execution block commands are executed with the # sh(1) '-x' option. # -e tries to get mkpath to stop when it encounters a # syntax error, and the internal sh(1) to stop when # a top level command exits with a non-zero status. # -n disables the execution of any sh(1) commands # useful with the '-v' and disables '-x', '-e', '-V', '-t' # -t trace all input of pathalias(8) is to be copied into # the file 'trace'. # path_config pathalia's configuration file, '-' => stdin, # or $LIB_DIR/maps/mkpath.conf by default # # If '-V' and '-t' are both used, '-V' must be before '-t'. # base directory for smail library/utility # # These directories should be owned by root, and only writeable by root # LIB_DIR="X_LIB_DIR_X" UTIL_BIN_DIR="X_UTIL_BIN_DIR_X" TMPDIR="X_TMP_DIR_X" MAPDIR="$LIB_DIR/maps" # standard locations # PATHALIAS=$UTIL_BIN_DIR/pathalias DCASEHOST=$UTIL_BIN_DIR/dcasehost AWKFILE=$UTIL_BIN_DIR/mkpath.awk GLEEM=$UTIL_BIN_DIR/gleem SORT=sort PATH="X_UTIL_PATH_X:X_SECURE_PATH_X" # parse args - need a public domain getopt command - XXX # PROG=$0 USAGE="$PROG: usage: $PROG [-v] [-V] [-x] [-e] [-n] [-t trace] [path_config]" set -- `getopt -n $PROG -q vVxent: $*` if [ "$?" -ne 0 ]; then echo "$USAGE" 1>&2 exit 1 fi SHELL_ARGS="-" ERR=0 TEE_FILE= PWD=`pwd` for i in $*; do case $i in -v) SHELL_ARGS="$SHELL_ARGS"v; shift;; -V) PATHALIAS="$PATHALIAS -v"; shift;; -x) SHELL_ARGS="$SHELL_ARGS"x; shift;; -e) SHELL_ARGS="$SHELL_ARGS"e; ERR=1; shift;; -n) SHELL_ARGS="$SHELL_ARGS"n; shift;; -t) if [ -z "$TEE_FILE" ]; then TEE_FILE="$2"; PATHALIAS="tee -a $TEE_FILE | $PATHALIAS"; fi; shift 2;; --) shift; break;; esac done # determine the path.conf config file if [ "$#" -gt 1 ]; then echo "$USAGE" exit 4 elif [ "$#" -eq 1 ]; then CONFIG="$1" else CONFIG= fi # verify that we can read the config file # determine the initial directory # if [ "$CONFIG" = "-" ]; then CD="$PWD" CONFIG="mkpath_stdin" CONF="" elif [ -z "$CONFIG" ]; then CD="$MAPDIR" cd "$CD" CD=`pwd` CONFIG="$MAPDIR"/mkpath.conf CONF="$CONFIG" elif [ -r "$CONFIG" ]; then if [ "`expr $CONFIG : '\\/'" -eq 0 ]; then CD=`pwd` else CD=`echo "$CONFIG" | sed 's,^\(.*\)/[^/][^/]*$,\1,'` cd "$CD" CD=`pwd` fi CONF="$CONFIG" else echo "$PROG: can not read $CONFIG" 1>&2 exit 5 fi # special action commands # # args to run pathalias, switch fields and sort for the pathsort command PATHSORT="$PATHALIAS -i -D|$DCASEHOST|$SORT -T $TMPDIR" # export vars needed for the sub-shell # # process the config file # trap "rm -f $TMPDIR/stm*;exit 1" 1 2 3 15 if [ "$TEE_FILE" ]; then cat /dev/null > $TEE_FILE fi # strip input of #comments, run it thru awk and into the shell (echo "#! /bin/sh $SHELL_ARGS" echo "PROG=\"$PROG\"" echo "PWD=\"$PWD\"" echo "CD=\"$CD\"" echo "CWD=\"$CD\"" echo "ERR=\"$ERR\"" echo "PATH=\"$PATH\"" echo "GLEEM=\"$GLEEM\"" echo "PATHALIAS=\"$PATHALIAS\"" echo "PATHSORT=\"$PATHSORT\"" echo "export PROG PWD CD CWD ERR PATH GLEEM PATHALIAS PATHSORT" if [ -z "$CONF" ]; then sed -e 's/[ ]*#.*$//' -e 's/^[ ]*//' else sed -e 's/[ ]*#.*$//' -e 's/^[ ]*//' < "$CONFIG" fi | awk -f "$AWKFILE" ERR="$ERR" PROG="$PROG" - ) | /bin/sh "$SHELL_ARGS" exit $?
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.