head 1.52; access; symbols PTH_1_4:1.51.0.2 PTH_1_4_1:1.51 PTH_1_4_0:1.49 PTH_1_3_7:1.43.2.4 PTH_1_4a3:1.48 PTH_1_3_6:1.43.2.3 PTH_1_4a2:1.47 PTH_1_3_5:1.43.2.2 PTH_1_4a1:1.45 PTH_1_3_4:1.43.2.2 PTH_1_3:1.43.0.2 PTH_1_3_3:1.43 PTH_1_3_2:1.43 PTH_1_3_1:1.43 PTH_1_3_0:1.43 PTH_1_3b3:1.42 PTH_1_2_3:1.40.2.1 PTH_1_3b2:1.42 PTH_1_3b1:1.42 PTH_1_3a5:1.42 PTH_1_3a4:1.42 PTH_1_3a3:1.42 PTH_1_2_2:1.40.2.1 PTH_1_3a2:1.42 PTH_1_2_1:1.40 PTH_1_3a1:1.40 PTH_1_2:1.40.0.2 PTH_1_2_0:1.40 PTH_1_2b8:1.40 PTH_1_2b7:1.39 PTH_1_1_6:1.37.2.1 PTH_1_2b6:1.39 PTH_1_2b5:1.39 PTH_1_2b4:1.39 PTH_1_2b3:1.39 PTH_1_2b2:1.38 PTH_1_2b1:1.37 PTH_1_1_5:1.37 PTH_1_0_6:1.37 PTH_1_0_5:1.37 PTH_1_0:1.37.0.4 PTH_1_1:1.37.0.2 PTH_1_1_4:1.37 PTH_1_1_3:1.37 PTH_1_1_2:1.37 PTH_1_1_1:1.37 PTH_1_1_0:1.37 PTH_1_1b7:1.37 PTH_1_1b6:1.37 PTH_1_1b5:1.37 PTH_1_1b4:1.37 PTH_1_1b3:1.37 PTH_1_1b2:1.37 PTH_1_1b1:1.37 PTH_1_0_4:1.37 PTH_1_0_3:1.37 PTH_1_0_2:1.36 PTH_1_0_1:1.35 PTH_1_0_0:1.34 PTH_1_0b8:1.31 PTH_1_0b7:1.31 PTH_1_0b6:1.31 PTH_1_0b5:1.31 PTH_1_0b4:1.27 PTH_1_0b3:1.26 PTH_1_0b2:1.22 PTH_1_0b1:1.20 PTH_0_9_21:1.19 PTH_0_9_20:1.18 PTH_0_9_19:1.15 PTH_0_9_18:1.15 PTH_0_9_17:1.15 PTH_0_9_16:1.12 PTH_0_9_15:1.12 PTH_0_9_14:1.11 PTH_0_9_13:1.11 PTH_0_9_12:1.9 PTH_0_9_11:1.9 PTH_0_9_10:1.8 PTH_0_9_9:1.6 PTH_0_9_8:1.5 PTH_0_9_7:1.5 PTH_0_9_6:1.5 PTH_0_9_5:1.5 PTH_0_9_4:1.5 PTH_0_9_3:1.4 PTH_0_9_2:1.4 PTH_0_9_1:1.4 PTH_0_9_0:1.1.1.1 RSE:1.1.1; locks; strict; comment @# @; expand @o@; 1.52 date 2002.01.30.12.54.24; author rse; state dead; branches; next 1.51; 1.51 date 2001.07.15.16.45.29; author rse; state Exp; branches; next 1.50; 1.50 date 2001.04.21.19.08.10; author rse; state Exp; branches; next 1.49; 1.49 date 2001.03.24.12.09.46; author rse; state Exp; branches; next 1.48; 1.48 date 2000.07.29.14.40.25; author rse; state Exp; branches; next 1.47; 1.47 date 2000.07.01.12.40.51; author rse; state Exp; branches; next 1.46; 1.46 date 2000.06.18.11.39.00; author rse; state Exp; branches; next 1.45; 1.45 date 2000.04.16.11.15.31; author rse; state Exp; branches; next 1.44; 1.44 date 2000.03.12.13.41.43; author rse; state Exp; branches; next 1.43; 1.43 date 2000.02.17.17.03.54; author rse; state Exp; branches 1.43.2.1; next 1.42; 1.42 date 99.12.30.21.59.01; author rse; state Exp; branches; next 1.41; 1.41 date 99.12.24.15.31.38; author rse; state Exp; branches; next 1.40; 1.40 date 99.10.26.09.50.53; author rse; state Exp; branches 1.40.2.1; next 1.39; 1.39 date 99.09.05.13.46.02; author rse; state Exp; branches; next 1.38; 1.38 date 99.09.04.12.32.41; author rse; state Exp; branches; next 1.37; 1.37 date 99.07.30.06.19.42; author rse; state Exp; branches 1.37.2.1; next 1.36; 1.36 date 99.07.28.06.58.16; author rse; state Exp; branches; next 1.35; 1.35 date 99.07.17.14.54.44; author rse; state Exp; branches; next 1.34; 1.34 date 99.07.16.14.33.01; author rse; state Exp; branches; next 1.33; 1.33 date 99.07.16.14.27.58; author rse; state Exp; branches; next 1.32; 1.32 date 99.07.16.13.11.43; author rse; state Exp; branches; next 1.31; 1.31 date 99.07.11.10.32.33; author rse; state Exp; branches; next 1.30; 1.30 date 99.07.09.06.48.44; author rse; state Exp; branches; next 1.29; 1.29 date 99.07.09.06.22.53; author rse; state Exp; branches; next 1.28; 1.28 date 99.07.09.06.19.27; author rse; state Exp; branches; next 1.27; 1.27 date 99.07.08.10.27.47; author rse; state Exp; branches; next 1.26; 1.26 date 99.07.07.19.00.38; author rse; state Exp; branches; next 1.25; 1.25 date 99.07.07.12.12.58; author rse; state Exp; branches; next 1.24; 1.24 date 99.07.07.06.48.20; author rse; state Exp; branches; next 1.23; 1.23 date 99.07.06.09.22.51; author rse; state Exp; branches; next 1.22; 1.22 date 99.07.02.13.29.59; author rse; state Exp; branches; next 1.21; 1.21 date 99.06.28.17.12.07; author rse; state Exp; branches; next 1.20; 1.20 date 99.06.28.10.26.49; author rse; state Exp; branches; next 1.19; 1.19 date 99.06.25.15.49.20; author rse; state Exp; branches; next 1.18; 1.18 date 99.06.25.15.40.19; author rse; state Exp; branches; next 1.17; 1.17 date 99.06.24.10.12.56; author rse; state Exp; branches; next 1.16; 1.16 date 99.06.23.07.14.37; author rse; state Exp; branches; next 1.15; 1.15 date 99.06.18.09.59.37; author rse; state Exp; branches; next 1.14; 1.14 date 99.06.18.09.27.45; author rse; state Exp; branches; next 1.13; 1.13 date 99.06.12.14.55.37; author rse; state Exp; branches; next 1.12; 1.12 date 99.06.02.13.59.04; author rse; state Exp; branches; next 1.11; 1.11 date 99.06.01.10.37.42; author rse; state Exp; branches; next 1.10; 1.10 date 99.06.01.09.55.27; author rse; state Exp; branches; next 1.9; 1.9 date 99.05.28.11.24.12; author rse; state Exp; branches; next 1.8; 1.8 date 99.05.28.10.16.17; author rse; state Exp; branches; next 1.7; 1.7 date 99.05.28.10.11.37; author rse; state Exp; branches; next 1.6; 1.6 date 99.05.25.15.47.27; author rse; state Exp; branches; next 1.5; 1.5 date 99.05.21.13.38.25; author rse; state Exp; branches; next 1.4; 1.4 date 99.05.13.16.40.12; author rse; state Exp; branches; next 1.3; 1.3 date 99.05.13.15.38.49; author rse; state Exp; branches; next 1.2; 1.2 date 99.05.13.12.32.52; author rse; state Exp; branches; next 1.1; 1.1 date 99.05.13.12.18.16; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 99.05.13.12.18.16; author rse; state Exp; branches; next ; 1.37.2.1 date 99.09.05.13.45.05; author rse; state Exp; branches; next ; 1.40.2.1 date 2000.01.07.23.16.18; author rse; state Exp; branches; next ; 1.43.2.1 date 2000.03.23.19.44.58; author rse; state Exp; branches; next 1.43.2.2; 1.43.2.2 date 2000.04.16.11.16.07; author rse; state Exp; branches; next 1.43.2.3; 1.43.2.3 date 2000.07.01.14.07.11; author rse; state Exp; branches; next 1.43.2.4; 1.43.2.4 date 2000.07.29.14.57.15; author rse; state Exp; branches; next 1.43.2.5; 1.43.2.5 date 2001.03.24.16.26.59; author rse; state Exp; branches; next ; desc @@ 1.52 log @Woohhooo! Major GNU Pth source tree overhauling: - Removed all generated files from CVS. - Use OSSP devtool stuff to re-generate files on demand. - Switched to Autoconf 2.52 and Libtool 1.4.2 environment. @ text @#!/bin/sh ## ## GNU shtool -- The GNU Portable Shell Tool ## Copyright (c) 1994-2001 Ralf S. Engelschall ## ## See http://www.gnu.org/software/shtool/ for more information. ## See ftp://ftp.gnu.org/gnu/shtool/ for latest version. ## ## Version: 1.5.4 (14-Jun-2001) ## Contents: 7/17 available modules ## ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA, or contact Ralf S. Engelschall . ## ## NOTICE: Given that you include this file verbatim into your own ## source tree, you are justified in saying that it remains separate ## from your package, and that this way you are simply just using GNU ## shtool. So, in this situation, there is no requirement that your ## package itself is licensed under the GNU General Public License in ## order to take advantage of GNU shtool. ## ## ## Usage: shtool [] [ [] []] ## ## Available commands: ## echo Print string with optional construct expansion ## install Install a program, script or datafile ## mkdir Make one or more directories ## fixperm Fix file permissions inside a source tree ## tarball Roll distribution tarballs ## scpp Sharing C Pre-Processor ## version Maintain a version information file ## ## Not available commands (because module was not built-in): ## mdate Pretty-print modification time of a file or dir ## table Pretty-print a field-separated list as a table ## prop Display progress with a running propeller ## move Move files with simultaneous substitution ## mkln Make link with calculation of relative paths ## mkshadow Make a shadow tree through symbolic links ## guessos Simple operating system guesser ## arx Extended archive command ## slo Separate linker options by library class ## path Deal with program paths ## if [ $# -eq 0 ]; then echo "$0:Error: invalid command line" 1>&2 echo "$0:Hint: run \`$0 -h' for usage" 1>&2 exit 1 fi if [ ".$1" = ".-h" -o ".$1" = ".--help" ]; then echo "This is GNU shtool, version 1.5.4 (14-Jun-2001)" echo "Copyright (c) 1994-2001 Ralf S. Engelschall " echo "Report bugs to " echo '' echo "Usage: shtool [] [ [] []]" echo '' echo 'Available global :' echo ' -v, --version display shtool version information' echo ' -h, --help display shtool usage help page (this one)' echo ' -d, --debug display shell trace information' echo ' -r, --recreate recreate this shtool script via shtoolize' echo '' echo 'Available [] []:' echo ' echo [-n] [-e] [ ...]' echo ' install [-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g]' echo ' [-e] [ ...] ' echo ' mkdir [-t] [-f] [-p] [-m] [ ...]' echo ' fixperm [-v] [-t] [ ...]' echo ' tarball [-t] [-v] [-o] [-c] [-d] [-u]' echo ' [-g] [-e] [ ...]' echo ' scpp [-v] [-p] [-f] [-o] [-t] [-M]' echo ' [-D] [-C] [ ...]' echo ' version [-l] [-n] [-p] [-s] [-e]' echo ' [-i] [-d] ' echo '' echo 'Not available (because module was not built-in):' echo ' mdate [-n] [-z] [-s] [-d] [-f] [-o] ' echo ' table [-F] [-w] [-c] [-s] ...' echo ' prop [-p]' echo ' move [-v] [-t] [-e] [-p] ' echo ' mkln [-t] [-f] [-s] [ ...] ' echo ' mkshadow [-v] [-t] [-a] ' echo ' guessos ' echo ' arx [-t] [-C] [ ...]' echo ' slo [-p] -- -L -l [-L -l ...]' echo ' path [-s] [-r] [-d] [-b] [-m] [-p] [ ...]' echo '' exit 0 fi if [ ".$1" = ".-v" -o ".$1" = ."--version" ]; then echo "GNU shtool 1.5.4 (14-Jun-2001)" exit 0 fi if [ ".$1" = ".-r" -o ".$1" = ."--recreate" ]; then shtoolize -oshtool echo install mkdir fixperm tarball scpp version exit 0 fi if [ ".$1" = ".-d" -o ".$1" = ."--debug" ]; then shift set -x fi name=`echo "$0" | sed -e 's;.*/\([^/]*\)$;\1;' -e 's;-sh$;;' -e 's;\.sh$;;'` case "$name" in echo|install|mkdir|fixperm|tarball|scpp|version ) # implicit tool command selection tool="$name" ;; * ) # explicit tool command selection tool="$1" shift ;; esac arg_spec="" opt_spec="" gen_tmpfile=no ## ## DISPATCH INTO SCRIPT PROLOG ## case $tool in echo ) str_tool="echo" str_usage="[-n] [-e] [ ...]" arg_spec="0+" opt_spec="n.e." opt_n=no opt_e=no ;; install ) str_tool="install" str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] [ ...] " arg_spec="2+" opt_spec="v.t.c.C.s.m:o:g:e+" opt_v=no opt_t=no opt_c=no opt_C=no opt_s=no opt_m="0755" opt_o="" opt_g="" opt_e="" ;; mkdir ) str_tool="mkdir" str_usage="[-t] [-f] [-p] [-m] [ ...]" arg_spec="1+" opt_spec="t.f.p.m:" opt_t=no opt_f=no opt_p=no opt_m="" ;; fixperm ) str_tool="fixperm" str_usage="[-v] [-t] [ ...]" arg_spec="1+" opt_spec="v.t." opt_v=no opt_t=no ;; tarball ) str_tool="tarball" str_usage="[-t] [-v] [-o] [-c] [-d] [-u] [-g] [-e] [ ...]" gen_tmpfile=yes arg_spec="1+" opt_spec="t.v.o:c:d:u:g:e:" opt_t=no opt_v=no opt_o="" opt_c="" opt_d="" opt_u="" opt_g="" opt_e="CVS,\\.cvsignore,\\.[oa]\$" ;; scpp ) str_tool="scpp" str_usage="[-v] [-p] [-f] [-o] [-t] [-M] [-D] [-C] [ ...]" gen_tmpfile=yes arg_spec="1+" opt_spec="v.p.f+o:t:M:D:C:" opt_v=no opt_p=no opt_f="" opt_o="lib.h" opt_t="lib.h.in" opt_M="%%MARK%%" opt_D="cpp" opt_C="intern" ;; version ) str_tool="version" str_usage="[-l] [-n] [-p] [-s] [-e] [-i] [-d] " arg_spec="1=" opt_spec="l:n:p:s:i:e.d:" opt_l="txt" opt_n="unknown" opt_p="" opt_s="" opt_e="no" opt_i="" opt_d="short" ;; -* ) echo "$0:Error: unknown option \`$tool'" 2>&1 echo "$0:Hint: run \`$0 -h' for usage" 2>&1 exit 1 ;; * ) echo "$0:Error: unknown command \`$tool'" 2>&1 echo "$0:Hint: run \`$0 -h' for usage" 2>&1 exit 1 ;; esac ## ## COMMON UTILITY CODE ## # determine name of tool if [ ".$tool" != . ]; then # used inside shtool script toolcmd="$0 $tool" toolcmdhelp="shtool $tool" msgprefix="shtool:$tool" else # used as standalone script toolcmd="$0" toolcmdhelp="sh $0" msgprefix="$str_tool" fi # parse argument specification string eval `echo $arg_spec |\ sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'` # parse option specification string eval `echo h.$opt_spec |\ sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'` # interate over argument line opt_PREV='' while [ $# -gt 0 ]; do # special option stops processing if [ ".$1" = ".--" ]; then shift break fi # determine option and argument opt_ARG_OK=no if [ ".$opt_PREV" != . ]; then # merge previous seen option with argument opt_OPT="$opt_PREV" opt_ARG="$1" opt_ARG_OK=yes opt_PREV='' else # split argument into option and argument case "$1" in -[a-zA-Z0-9]*) eval `echo "x$1" |\ sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \ -e 's/";\(.*\)$/"; opt_ARG="\1"/'` ;; -[a-zA-Z0-9]) opt_OPT=`echo "x$1" | cut -c3-` opt_ARG='' ;; *) break ;; esac fi # eat up option shift # determine whether option needs an argument eval "opt_MODE=\$opt_MODE_${opt_OPT}" if [ ".$opt_ARG" = . -a ".$opt_ARG_OK" != .yes ]; then if [ ".$opt_MODE" = ".:" -o ".$opt_MODE" = ".+" ]; then opt_PREV="$opt_OPT" continue fi fi # process option case $opt_MODE in '.' ) # boolean option eval "opt_${opt_OPT}=yes" ;; ':' ) # option with argument (multiple occurances override) eval "opt_${opt_OPT}=\"\$opt_ARG\"" ;; '+' ) # option with argument (multiple occurances append) eval "opt_${opt_OPT}=\"\$opt_${opt_OPT} \$opt_ARG\"" ;; * ) echo "$msgprefix:Error: unknown option: \`-$opt_OPT'" 1>&2 echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2 exit 1 ;; esac done if [ ".$opt_PREV" != . ]; then echo "$msgprefix:Error: missing argument to option \`-$opt_PREV'" 1>&2 echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2 exit 1 fi # process help option if [ ".$opt_h" = .yes ]; then echo "Usage: $toolcmdhelp $str_usage" exit 0 fi # complain about incorrect number of arguments case $arg_MODE in '=' ) if [ $# -ne $arg_NUMS ]; then echo "$msgprefix:Error: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2 echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 exit 1 fi ;; '+' ) if [ $# -lt $arg_NUMS ]; then echo "$msgprefix:Error: invalid number of arguments (at least $arg_NUMS expected)" 1>&2 echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 exit 1 fi ;; esac # establish a temporary file on request if [ ".$gen_tmpfile" = .yes ]; then if [ ".$TMPDIR" != . ]; then tmpdir="$TMPDIR" elif [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" else tmpdir="/tmp" fi tmpfile="$tmpdir/.shtool.$$" rm -f $tmpfile >/dev/null 2>&1 touch $tmpfile chmod 600 $tmpfile fi ## ## DISPATCH INTO SCRIPT BODY ## case $tool in echo ) ## ## echo -- Print string with optional construct expansion ## Copyright (c) 1998-2001 Ralf S. Engelschall ## Originally written for WML as buildinfo ## text="$*" # check for broken escape sequence expansion seo='' bytes=`echo '\1' | wc -c | awk '{ printf("%s", $1); }'` if [ ".$bytes" != .3 ]; then bytes=`echo -E '\1' | wc -c | awk '{ printf("%s", $1); }'` if [ ".$bytes" = .3 ]; then seo='-E' fi fi # check for existing -n option (to suppress newline) minusn='' bytes=`echo -n 123 2>/dev/null | wc -c | awk '{ printf("%s", $1); }'` if [ ".$bytes" = .3 ]; then minusn='-n' fi # determine terminal bold sequence term_bold='' term_norm='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[Bb]'`" != . ]; then case $TERM in # for the most important terminal types we directly know the sequences xterm|xterm*|vt220|vt220*) term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' /dev/null` term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' /dev/null` ;; vt100|vt100*) term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' /dev/null` term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' /dev/null` ;; # for all others, we try to use a possibly existing `tput' or `tcout' utility * ) paths=`echo $PATH | sed -e 's/:/ /g'` for tool in tput tcout; do for dir in $paths; do if [ -r "$dir/$tool" ]; then for seq in bold md smso; do # 'smso' is last bold="`$dir/$tool $seq 2>/dev/null`" if [ ".$bold" != . ]; then term_bold="$bold" break fi done if [ ".$term_bold" != . ]; then for seq in sgr0 me rmso reset; do # 'reset' is last norm="`$dir/$tool $seq 2>/dev/null`" if [ ".$norm" != . ]; then term_norm="$norm" break fi done fi break fi done if [ ".$term_bold" != . -a ".$term_norm" != . ]; then break; fi done ;; esac if [ ".$term_bold" = . -o ".$term_norm" = . ]; then echo "$msgprefix:Warning: unable to determine terminal sequence for bold mode" 1>&2 fi fi # determine user name username='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[uUgG]'`" != . ]; then username="$LOGNAME" if [ ".$username" = . ]; then username="$USER" if [ ".$username" = . ]; then username="`(whoami) 2>/dev/null |\ awk '{ printf("%s", $1); }'`" if [ ".$username" = . ]; then username="`(who am i) 2>/dev/null |\ awk '{ printf("%s", $1); }'`" if [ ".$username" = . ]; then username='unknown' fi fi fi fi fi # determine user id userid='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%U'`" != . ]; then userid="`(id -u) 2>/dev/null`" if [ ".$userid" = . ]; then str="`(id) 2>/dev/null`" if [ ".`echo $str | grep '^uid[ ]*=[ ]*[0-9]*('`" != . ]; then userid=`echo $str | sed -e 's/^uid[ ]*=[ ]*//' -e 's/(.*//'` fi if [ ".$userid" = . ]; then userid=`egrep "^${username}:" /etc/passwd 2>/dev/null | \ sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$userid" = . ]; then userid=`(ypcat passwd) 2>/dev/null | egrep "^${username}:" | \ sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$userid" = . ]; then userid='?' fi fi fi fi fi # determine (primary) group id groupid='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[gG]'`" != . ]; then groupid=`egrep "^${username}:" /etc/passwd 2>/dev/null | \ sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$groupid" = . ]; then groupid=`(ypcat passwd) 2>/dev/null | egrep "^${username}:" | \ sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'` if [ ".$groupid" = . ]; then groupid='?' fi fi fi # determine (primary) group name groupname='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%g'`" != . ]; then groupname=`egrep "^[^:]*:[^:]*:${groupid}:" /etc/group 2>/dev/null | \ sed -e 's/:.*$//'` if [ ".$groupname" = . ]; then groupname=`(ypcat group) 2>/dev/null | \ egrep "^[^:]*:[^:]*:${groupid}:" | \ sed -e 's/:.*$//'` if [ ".$groupname" = . ]; then groupname='?' fi fi fi # determine host and domain name hostname='' domainname='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%h'`" != . ]; then hostname="`(uname -n) 2>/dev/null |\ awk '{ printf("%s", $1); }'`" if [ ".$hostname" = . ]; then hostname="`(hostname) 2>/dev/null |\ awk '{ printf("%s", $1); }'`" if [ ".$hostname" = . ]; then hostname='unknown' fi fi case $hostname in *.* ) domainname=".`echo $hostname | cut -d. -f2-`" hostname="`echo $hostname | cut -d. -f1`" ;; esac fi if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%d'`" != . ]; then if [ ".$domainname" = . ]; then if [ -f /etc/resolv.conf ]; then domainname="`egrep '^[ ]*domain' /etc/resolv.conf | head -1 |\ sed -e 's/.*domain//' \ -e 's/^[ ]*//' -e 's/^ *//' -e 's/^ *//' \ -e 's/^\.//' -e 's/^/./' |\ awk '{ printf("%s", $1); }'`" if [ ".$domainname" = . ]; then domainname="`egrep '^[ ]*search' /etc/resolv.conf | head -1 |\ sed -e 's/.*search//' \ -e 's/^[ ]*//' -e 's/^ *//' -e 's/^ *//' \ -e 's/ .*//' -e 's/ .*//' \ -e 's/^\.//' -e 's/^/./' |\ awk '{ printf("%s", $1); }'`" fi fi fi fi # determine current time time_day='' time_month='' time_year='' time_monthname='' if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[DMYm]'`" != . ]; then time_day=`date '+%d'` time_month=`date '+%m'` time_year=`date '+%Y' 2>/dev/null` if [ ".$time_year" = . ]; then time_year=`date '+%y'` case $time_year in [5-9][0-9]) time_year="19$time_year" ;; [0-4][0-9]) time_year="20$time_year" ;; esac fi case $time_month in 1|01) time_monthname='Jan' ;; 2|02) time_monthname='Feb' ;; 3|03) time_monthname='Mar' ;; 4|04) time_monthname='Apr' ;; 5|05) time_monthname='May' ;; 6|06) time_monthname='Jun' ;; 7|07) time_monthname='Jul' ;; 8|08) time_monthname='Aug' ;; 9|09) time_monthname='Sep' ;; 10) time_monthname='Oct' ;; 11) time_monthname='Nov' ;; 12) time_monthname='Dec' ;; esac fi # expand special ``%x'' constructs if [ ".$opt_e" = .yes ]; then text=`echo $seo "$text" |\ sed -e "s/%B/${term_bold}/g" \ -e "s/%b/${term_norm}/g" \ -e "s/%u/${username}/g" \ -e "s/%U/${userid}/g" \ -e "s/%g/${groupname}/g" \ -e "s/%G/${groupid}/g" \ -e "s/%h/${hostname}/g" \ -e "s/%d/${domainname}/g" \ -e "s/%D/${time_day}/g" \ -e "s/%M/${time_month}/g" \ -e "s/%Y/${time_year}/g" \ -e "s/%m/${time_monthname}/g" 2>/dev/null` fi # create output if [ .$opt_n = .no ]; then echo $seo "$text" else # the harder part: echo -n is best, because # awk may complain about some \xx sequences. if [ ".$minusn" != . ]; then echo $seo $minusn "$text" else echo dummy | awk '{ printf("%s", TEXT); }' TEXT="$text" fi fi ;; install ) ## ## install -- Install a program, script or datafile ## Copyright (c) 1997-2001 Ralf S. Engelschall ## Originally written for shtool ## # determine source(s) and destination argc=$# srcs="" while [ $# -gt 1 ]; do srcs="$srcs $1" shift done dstpath="$1" # type check for destination dstisdir=0 if [ -d $dstpath ]; then dstpath=`echo "$dstpath" | sed -e 's:/$::'` dstisdir=1 fi # consistency check for destination if [ $argc -gt 2 -a $dstisdir = 0 ]; then echo "$msgprefix:Error: multiple sources require destination to be directory" 1>&2 exit 1 fi # iterate over all source(s) for src in $srcs; do dst=$dstpath # if destination is a directory, append the input filename if [ $dstisdir = 1 ]; then dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'` dst="$dst/$dstfile" fi # check for correct arguments if [ ".$src" = ".$dst" ]; then echo "$msgprefix:Warning: source and destination are the same - skipped" 1>&2 continue fi if [ -d "$src" ]; then echo "$msgprefix:Warning: source \`$src' is a directory - skipped" 1>&2 continue fi # make a temp file name in the destination directory dsttmp=`echo $dst |\ sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;' \ -e "s;\$;/#INST@@$$#;"` # verbosity if [ ".$opt_v" = .yes ]; then echo "$src -> $dst" 1>&2 fi # copy or move the file name to the temp name # (because we might be not allowed to change the source) if [ ".$opt_C" = .yes ]; then opt_c=yes fi if [ ".$opt_c" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "cp $src $dsttmp" 1>&2 fi cp $src $dsttmp || exit $? else if [ ".$opt_t" = .yes ]; then echo "mv $src $dsttmp" 1>&2 fi mv $src $dsttmp || exit $? fi # adjust the target file if [ ".$opt_e" != . ]; then sed='sed' for e in $opt_e; do sed="$sed -e '$e'" done cp $dsttmp $dsttmp.old eval "$sed <$dsttmp.old >$dsttmp" || exit $? rm -f $dsttmp.old fi if [ ".$opt_s" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "strip $dsttmp" 1>&2 fi strip $dsttmp || exit $? fi if [ ".$opt_o" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chown $opt_o $dsttmp" 1>&2 fi chown $opt_o $dsttmp || exit $? fi if [ ".$opt_g" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chgrp $opt_g $dsttmp" 1>&2 fi chgrp $opt_g $dsttmp || exit $? fi if [ ".$opt_m" != ".-" ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $dsttmp" 1>&2 fi chmod $opt_m $dsttmp || exit $? fi # determine whether to do a quick install # (has to be done _after_ the strip was already done) quick=no if [ ".$opt_C" = .yes ]; then if [ -r $dst ]; then if cmp -s $src $dst; then quick=yes fi fi fi # finally, install the file to the real destination if [ $quick = yes ]; then if [ ".$opt_t" = .yes ]; then echo "rm -f $dsttmp" 1>&2 fi rm -f $dsttmp else if [ ".$opt_t" = .yes ]; then echo "rm -f $dst && mv $dsttmp $dst" 1>&2 fi rm -f $dst && mv $dsttmp $dst fi done ;; mkdir ) ## ## mkdir -- Make one or more directories ## Copyright (c) 1996-2001 Ralf S. Engelschall ## Originally written for public domain by Noah Friedman ## Cleaned up and enhanced for shtool ## errstatus=0 for p in ${1+"$@@"}; do # if the directory already exists... if [ -d "$p" ]; then if [ ".$opt_f" = .no -a ".$opt_p" = .no ]; then echo "$msgprefix:Error: directory already exists: $p" 1>&2 errstatus=1 break else continue fi fi # if the directory has to be created... if [ ".$opt_p" = .no ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $p" 1>&2 fi mkdir $p || errstatus=$? if [ ".$opt_m" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $p" 1>&2 fi chmod $opt_m $p || errstatus=$? fi else # the smart situation set fnord `echo ":$p" |\ sed -e 's/^:\//%/' \ -e 's/^://' \ -e 's/\// /g' \ -e 's/^%/\//'` shift pathcomp='' for d in ${1+"$@@"}; do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp="./$pathcomp" ;; esac if [ ! -d "$pathcomp" ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $pathcomp" 1>&2 fi mkdir $pathcomp || errstatus=$? if [ ".$opt_m" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $pathcomp" 1>&2 fi chmod $opt_m $pathcomp || errstatus=$? fi fi pathcomp="$pathcomp/" done fi done exit $errstatus ;; fixperm ) ## ## fixperm -- Fix file permissions inside a source tree ## Copyright (c) 1996-2001 Ralf S. Engelschall ## Originally written for ePerl ## paths="$*" # check whether the test command supports the -x option if [ -x /bin/sh ] 2>/dev/null; then minusx="-x" else minusx="-r" fi # iterate over paths for p in $paths; do for file in `find $p -depth -print`; do if [ -f $file ]; then if [ $minusx $file ]; then if [ ".$opt_v" = .yes ]; then echo "-rwxrwxr-x $file" 2>&1 fi if [ ".$opt_t" = .yes ]; then echo "chmod 775 $file" 2>&1 fi chmod 775 $file else if [ ".$opt_v" = .yes ]; then echo "-rw-rw-r-- $file" 2>&1 fi if [ ".$opt_t" = .yes ]; then echo "chmod 664 $file" 2>&1 fi chmod 664 $file fi continue fi if [ -d $file ]; then if [ ".$opt_v" = .yes ]; then echo "drwxrwxr-x $file" 2>&1 fi if [ ".$opt_t" = .yes ]; then echo "chmod 775 $file" 2>&1 fi chmod 775 $file continue fi if [ ".$opt_v" = .yes ]; then echo "?????????? $file" 2>&1 fi done done ;; tarball ) ## ## tarball -- Roll distribution tarballs ## Copyright (c) 1999-2001 Ralf S. Engelschall ## Originally written for shtool ## srcs="$*" # check whether the test command supports the -x option if [ -x /bin/sh ] 2>/dev/null; then minusx="-x" else minusx="-r" fi # find the tools paths="`echo $PATH |\ sed -e 's%/*:%:%g' -e 's%/*$%%' \ -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \ -e 's/:/ /g'`" for spec in find:gfind,find tar:gtar,tar tardy:tardy,tarcust; do prg=`echo $spec | sed -e 's/:.*$//'` tools=`echo $spec | sed -e 's/^.*://'` eval "prg_${prg}=''" # iterate over tools for tool in `echo $tools | sed -e 's/,/ /g'`; do # iterate over paths for path in $paths; do if [ $minusx "$path/$tool" -a ! -d "$path/$tool" ]; then eval "prg_${prg}=\"$path/$tool\"" break fi done eval "val=\$prg_${prg}" if [ ".$val" != . ]; then break fi done done # expand source paths exclude='' for pat in `echo $opt_e | sed 's/,/ /g'`; do exclude="$exclude | grep -v '$pat'" done if [ ".$opt_t" = .yes ]; then echo "cp /dev/null $tmpfile.lst" 1>&2 fi cp /dev/null $tmpfile.lst for src in $srcs; do if [ -d $src ]; then if [ ".$opt_t" = .yes ]; then echo "(cd $src && $prg_find . -type f -depth -print) | sed -e 's:^\\.\$::' -e 's:^\\./::' | cat $exclude >>$tmpfile.lst" 1>&2 fi (cd $src && $prg_find . -type f -depth -print) |\ sed -e 's:^\.$::' -e 's:^\./::' | eval cat $exclude >>$tmpfile.lst else if [ ".$opt_t" = .yes ]; then echo "echo $src >>$tmpfile.lst" 1>&2 fi echo $src >>$tmpfile.lst fi done sort <$tmpfile.lst >$tmpfile.lst.n mv $tmpfile.lst.n $tmpfile.lst if [ ".$opt_v" = .yes ]; then cat $tmpfile.lst | sed -e 's/^/ /' 1>&2 fi # determine tarball file and directory name if [ ".$opt_o" != . ]; then tarfile="$opt_o" if [ ".$opt_d" != . ]; then tarname="$opt_d" else tarname=`echo $tarfile | sed -e 's/\.tar.*$//' -e 's;.*/\([^/]*\)$;\1;'` fi else if [ ".$opt_d" != . ]; then tarname="$opt_d" elif [ -d "$from" ]; then tarname=`echo $from | sed -e 's;.*/\([^/]*\)$;\1;'` else tarname="out" fi tarfile="$tarname.tar" fi # roll the tarball compress='' if [ ".$opt_c" != . ]; then compress="| $opt_c" fi if [ ".$prg_tardy" != . ]; then # the elegant hackers way tardy_opt="--prefix=$tarname" tardy_opt="$tardy_opt --user_number=0 --group_number=0" # security! if [ ".$opt_u" != . ]; then tardy_opt="$tardy_opt --user_name=$opt_u" fi if [ ".$opt_g" != . ]; then tardy_opt="$tardy_opt --group_name=$opt_g" fi if [ ".$opt_t" = .yes ]; then echo "cat $tmpfile.lst | xargs $prg_tar cf - | $prg_tardy $tardy_opt | cat $compress >$tmpfile.out" 1>&2 fi cat $tmpfile.lst |\ xargs $prg_tar cf - |\ $prg_tardy $tardy_opt |\ eval cat $compress >$tmpfile.out if [ ".$opt_t" = .yes ]; then echo "cp $tmpfile.out $tarfile" 1>&2 fi cp $tmpfile.out $tarfile else # the portable standard way if [ ".$opt_t" = .yes ]; then echo "mkdir $tmpdir/$tarname" 1>&2 fi mkdir $tmpdir/$tarname || exit 1 if [ ".$opt_t" = .yes ]; then echo "cat $tmpfile.lst | xargs $prg_tar cf - | (cd $tmpdir/$tarname && $prg_tar xf -)" 1>&2 fi cat $tmpfile.lst |\ xargs $prg_tar cf - |\ (cd $tmpdir/$tarname && $prg_tar xf -) if [ ".$opt_u" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1" 2>&1 fi chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1 ||\ echo "$msgprefix:Warning: cannot set user name \`$opt_u' (would require root priviledges)" fi if [ ".$opt_g" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1" 2>&1 fi chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1 ||\ echo "$msgprefix:Warning: cannot set group name \`$opt_g' (would require root priviledges)" fi if [ ".$opt_t" = .yes ]; then echo "(cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) | cat $compress >$tmpfile.out" 1>&2 fi (cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) |\ eval cat $compress >$tmpfile.out if [ ".$opt_t" = .yes ]; then echo "cp $tmpfile.out $tarfile" 1>&2 fi cp $tmpfile.out $tarfile if [ ".$opt_t" = .yes ]; then echo "rm -rf $tmpdir/$tarname" 1>&2 fi rm -rf $tmpdir/$tarname fi # cleanup if [ ".$opt_t" = .yes ]; then echo "rm -f $tmpfile.lst $tmpfile.out" 1>&2 fi rm -f $tmpfile.lst $tmpfile.out ;; scpp ) ## ## scpp -- Sharing C Pre-Processor ## Copyright (c) 1999-2001 Ralf S. Engelschall ## Originally written for GNU Pth ## srcs="$*" output="${opt_o}.n" # find a reasonable Awk awk='' paths=`echo $PATH |\ sed -e 's%/*:%:%g' -e 's%/$%%' \ -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \ -e 's/:/ /g'` for name in gawk nawk awk; do for path in $paths; do if [ -r "$path/$name" ]; then awk="$path/$name" break fi done if [ ".$awk" != . ]; then break fi done if [ ".$awk" = . ]; then echo "$msgprefix:Error: cannot find a reasonable Awk" 1>&2 exit 1 fi # parse source file(s) if [ ".$opt_v" = .yes ]; then echo "Parsing:" | $awk '{ printf("%s", $0); }' 1>&2 fi for src in $srcs; do if [ ".$opt_v" = .yes ]; then echo $src | $awk '{ printf(" %s", $0); }' 1>&2 fi if [ ".$opt_f" = . ]; then inputcmd="cat $src" else inputcmd="sed $opt_f $src" fi $inputcmd |\ $awk ' BEGIN { ln = 0; fln = 0; level = 0; mode = ""; store = ""; } { ln++; } /^#if.*/ { level++; } /^#if [a-zA-Z_][a-zA-Z0-9_]* *$/ { if ($2 == define) { mode = "D"; printf("D:#line %d \"%s\"\n", ln, src); next; } } /^#endif.*/ { level--; if (mode == "D" && level == 0) { mode = ""; next; } } /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ { if ($1 == class) { printf("V:#line %d \"%s\"\n", ln, src); printf("V:%s\n", $0); printf("J:%s\n", $0); next; } } /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ { if ($1 == class) { printf("V:#line %d \"%s\"\n", ln, src); printf("V:%s\n", $0); printf("J:%s\n", $0); next; } } /^[a-zA-Z_][a-zA-Z0-9_]*/ { if ($1 == class) { fln = ln; store = $0; mode = "F"; next; } } /^\{ *$/ { if (mode == "F") { printf("F:#line %d \"%s\"\n", fln, src); printf("F:%s;\n", store); printf("I:%s;\n", store); store = ""; mode = ""; next; } } { if (mode == "D") printf("D:%s\n", $0); else if (mode == "F") store = store " " $0; } ' "src=$src" "define=$opt_D" "class=$opt_C" >>$tmpfile done if [ ".$opt_v" = .yes ]; then echo "" 1>&2 fi # start generating output header echo "/* $opt_o -- autogenerated from $opt_t, DO NOT EDIT! */" >$output echo "#line 1 \"$opt_t\"" >>$output sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd' |\ sed -e "/^${opt_M} *\$/d" >>$output # merge in the define blocks grep '^D:' $tmpfile | sed -e 's/^D://' >>$output # generate standard prolog echo "#line 1 \"_ON_THE_FLY_\"" >>$output echo "" >>$output echo "/* make sure the scpp source extensions are skipped */" >>$output echo "#define $opt_D 0" >>$output echo "#define $opt_C /**/" >>$output # generate namespace hiding for variables echo "" >>$output echo "/* move intern variables to hidden namespace */" >>$output grep '^J:' $tmpfile | sed >>$output \ -e 's/^J://' \ -e 's/ */ /g' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\];.*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\] =.*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\);.*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\) =.*$/#define \1 __\1/' # generate namespace hiding for functions echo "" >>$output echo "/* move intern functions to hidden namespace */" >>$output grep '^I:' $tmpfile | sed >>$output \ -e 's/^I://' \ -e 's/\([ (]\) */\1/g' \ -e 's/ *\([),]\)/\1/g' \ -e 's/^[^(]*[ *]\([a-zA-Z0-9_]*\)(.*$/#define \1 __\1/' # generate prototypes for variables echo "" >>$output echo "/* prototypes for intern variables */" >>$output grep '^V:' $tmpfile | sed >>$output \ -e 's/^V://' \ -e 's/ */ /g' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\);.*$/\1;/' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\) =.*$/\1;/' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\);.*$/\1;/' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\) =.*$/\1;/' \ -e 's/ ;/;/g' \ -e "s/^$opt_C /extern /" # generate prototypes for functions echo "" >>$output echo "/* prototypes for intern functions */" >>$output grep '^F:' $tmpfile | sed >>$output \ -e 's/^F://' \ -e 's/\([ (]\) */\1/g' \ -e 's/ *\([),]\)/\1/g' \ -e 's/\([* ]\)[a-zA-Z0-9_]*,/\1,/g' \ -e 's/\([* ]\)[a-zA-Z0-9_]*);/\1);/g' \ -e 's/(\*[a-zA-Z0-9_]*)(/(*)(/g' \ -e 's/\([ (]\) */\1/g' \ -e 's/ *\([),]\)/\1/g' \ -e "s/^$opt_C /extern /" # finish generating output header n=`(echo ''; sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd') |\ wc -l | sed -e 's;^ *\([0-9]*\) *$;\1;'` echo "#line $n \"$opt_t\"" >>$output sed <$opt_t -e "/^${opt_M} *\$/,\$p" -e 'd' |\ sed -e "/^${opt_M} *\$/d" >>$output # create final output file if [ -f $opt_o ]; then if [ ".$opt_p" = .yes ]; then grep -v '^#line' $opt_o >$tmpfile.o grep -v '^#line' $output >$tmpfile.n out_old="$tmpfile.o" out_new="$tmpfile.n" else out_old="$opt_o" out_new="$output" fi if cmp -s $out_old $out_new; then : else cp $output $opt_o fi else cp $output $opt_o fi rm -f $output rm -f $tmpfile $tmpfile.* >/dev/null 2>&1 ;; version ) ## ## version -- Maintain a version information file ## Copyright (c) 1994-2001 Ralf S. Engelschall ## Originally written for ePerl, rewritten from scratch for shtool ## file="$1" # determine prefix and name name="$opt_n" prefix="$opt_p" # determine current version triple="$opt_s" if [ ".$triple" != . ]; then # use given triple if [ ".`echo $triple | grep '[0-9]*.[0-9]*[sabp.][0-9]*'`" = . ]; then echo "$msgprefix:Error: invalid argument to option \`-s': \`$opt_s'" 1>&2 exit 1 fi eval `echo $triple |\ sed -e 's%\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\).*%\ ver="\1";rev="\2";typ="\3";lev="\4"%'` tim=calc elif [ -r $file ]; then # determine triple from given file eval `grep 'Version [0-9]*.[0-9]*[sabp.][0-9]* ([0-9]*-[a-zA-Z]*-[0-9]*)' $file |\ head -1 | sed -e 's%.*Version \([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\) (\([0-9]*-[a-zA-Z]*-[0-9]*\)).*%\ ver="\1";rev="\2";typ="\3";lev="\4";tim="\5"%'` else # intialise to first version ver=0 rev=1 typ=. lev=0 tim=calc fi # determine new version in batch if [ ".$opt_i" != . ]; then case $opt_i in v ) ver=`expr $ver + 1` rev=0 lev=0 ;; r ) rev=`expr $rev + 1` lev=0 ;; l ) lev=`expr $lev + 1` ;; * ) echo "$msgprefix:Error: invalid argument to option \`-i': \`$opt_i'" 1>&2 exit 1 ;; esac tim=calc fi # determine new version interactively if [ ".$opt_e" = .yes ]; then echo "old version: ${ver}.${rev}${typ}${lev}" while [ 1 ]; do echo dummy | awk '{ printf("new version: "); }' read triple case $triple in [0-9]*.[0-9]*[sabp.][0-9]* ) ;; * ) echo "$msgprefix:Error: invalid version string entered: \`$triple'" 1>&2 continue ;; esac break done eval `echo $triple |\ sed -e 's%^\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\)$%\ ver="\1";rev="\2";typ="\3";lev="\4"%'` tim=calc fi # determine hexadecimal and libtool value of version case $typ in a ) typnum=0; levnum=$lev ;; b ) typnum=1; levnum=$lev ;; p | . ) typnum=2; levnum=$lev ;; s ) typnum=15; levnum=255 ;; # snapshots are special esac hex=`echo "$ver:$rev:$typnum:$levnum" |\ awk -F: '{ printf("0x%x%02x%1x%02x", $1, $2, $3, $4); }' |\ tr 'abcdef' 'ABCDEF'` ltv=`echo "$ver:$rev:$typnum:$levnum" |\ awk -F: '{ printf("%d:%d", $1*10 + $2, $3*10 + $4); }'` # determine date if [ ".$tim" = .calc ]; then day=`date '+%d'` month=`date '+%m'` year=`date '+%Y' 2>/dev/null` if [ ".$time_year" = . ]; then year=`date '+%y'` case $year in [5-9][0-9]) year="19$year" ;; [0-4][0-9]) year="20$year" ;; esac fi case $month in 1|01) month='Jan' ;; 2|02) month='Feb' ;; 3|03) month='Mar' ;; 4|04) month='Apr' ;; 5|05) month='May' ;; 6|06) month='Jun' ;; 7|07) month='Jul' ;; 8|08) month='Aug' ;; 9|09) month='Sep' ;; 10) month='Oct' ;; 11) month='Nov' ;; 12) month='Dec' ;; esac tim="${day}-${month}-${year}" fi # perform result actions mode=show if [ ".$opt_i" != . ]; then mode=edit elif [ ".$opt_e" = .yes ]; then mode=edit elif [ ".$opt_s" != . ]; then mode=edit fi if [ ".$mode" = .show ]; then # just display the current version case $opt_d in short ) echo "${ver}.${rev}${typ}${lev}" ;; long ) echo "${ver}.${rev}${typ}${lev} ($tim)" ;; libtool ) echo "${ltv}" ;; hex ) echo "${hex}" ;; * ) echo "$msgprefix:Error: invalid argument to option \`-d': \`$opt_d'" 1>&2 exit 1 ;; esac else # update the version file # pre-generate various strings triple="${ver}.${rev}${typ}${lev}" vHex="$hex" vShort="${triple}" vLong="${triple} (${tim})" vTeX="This is ${name}, Version ${triple} (${tim})" vGNU="${name} ${triple} (${tim})" vWeb="${name}/${triple}" vSCCS="@@(#)${name} ${triple} (${tim})" vRCS="\$Id: ${name} ${triple} (${tim}) \$" # determine string out of filename # (do NOT try to optimize this in any way because of portability) filestr=`echo $file |\ tr 'abcdefghijklmnopqrstuvwxyz./%+' \ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ____' | sed -e 's/-/_/g'` # generate uppercase prefix prefixupper=`echo $prefix |\ tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` # create the version file according the the selected language echo "new version: ${vLong}" cp /dev/null $file case $opt_l in txt ) echo >>$file "" echo >>$file " ${file} -- Version Information for ${name} (syntax: Text)" echo >>$file " [automatically generated and maintained by GNU shtool]" echo >>$file "" echo >>$file " $vTeX" echo >>$file "" ;; c ) echo >>$file "/*" echo >>$file "** ${file} -- Version Information for ${name} (syntax: C/C++)" echo >>$file "** [automatically generated and maintained by GNU shtool]" echo >>$file "*/" echo >>$file "" echo >>$file "#ifdef _${filestr}_AS_HEADER_" echo >>$file "" echo >>$file "#ifndef _${filestr}_" echo >>$file "#define _${filestr}_" echo >>$file "" echo >>$file "#define ${prefixupper}VERSION ${vHex}" echo >>$file "" echo >>$file "typedef struct {" echo >>$file " const int v_hex;" echo >>$file " const char *v_short;" echo >>$file " const char *v_long;" echo >>$file " const char *v_tex;" echo >>$file " const char *v_gnu;" echo >>$file " const char *v_web;" echo >>$file " const char *v_sccs;" echo >>$file " const char *v_rcs;" echo >>$file "} ${prefix}version_t;" echo >>$file "" echo >>$file "extern ${prefix}version_t ${prefix}version;" echo >>$file "" echo >>$file "#endif /* _${filestr}_ */" echo >>$file "" echo >>$file "#else /* _${filestr}_AS_HEADER_ */" echo >>$file "" echo >>$file "#define _${filestr}_AS_HEADER_" echo >>$file "#include \"${file}\"" echo >>$file "#undef _${filestr}_AS_HEADER_" echo >>$file "" echo >>$file "${prefix}version_t ${prefix}version = {" echo >>$file " ${vHex}," echo >>$file " \"${vShort}\"," echo >>$file " \"${vLong}\"," echo >>$file " \"${vTeX}\"," echo >>$file " \"${vGNU}\"," echo >>$file " \"${vWeb}\"," echo >>$file " \"${vSCCS}\"," echo >>$file " \"${vRCS}\"" echo >>$file "};" echo >>$file "" echo >>$file "#endif /* _${filestr}_AS_HEADER_ */" echo >>$file "" ;; perl ) echo >>$file "##" echo >>$file "## ${file} -- Version Information for ${name} (syntax: Perl)" echo >>$file "## [automatically generated and maintained by GNU shtool]" echo >>$file "##" echo >>$file "" echo >>$file "my \$${prefix}version = {" echo >>$file " 'v_hex' => ${vHex}," echo >>$file " 'v_short' => \"${vShort}\"," echo >>$file " 'v_long' => \"${vLong}\"," echo >>$file " 'v_tex' => \"${vTeX}\"," echo >>$file " 'v_gnu' => \"${vGNU}\"," echo >>$file " 'v_web' => \"${vWeb}\"," echo >>$file " 'v_sccs' => \"${vSCCS}\"," echo >>$file " 'v_rcs' => \"\\${vRCS}/\"" echo >>$file "};" echo >>$file "" echo >>$file "1;" echo >>$file "" ;; python ) echo >>$file "##" echo >>$file "## ${file} -- Version Information for ${name} (syntax: Python)" echo >>$file "## [automatically generated and maintained by GNU shtool]" echo >>$file "##" echo >>$file "" echo >>$file "class ${prefix}version:" echo >>$file " v_hex = ${vHex}" echo >>$file " v_short = \"${vShort}\"" echo >>$file " v_long = \"${vLong}\"" echo >>$file " v_tex = \"${vTeX}\"" echo >>$file " v_gnu = \"${vGNU}\"" echo >>$file " v_web = \"${vWeb}\"" echo >>$file " v_sccs = \"${vSCCS}\"" echo >>$file " v_rcs = \"${vRCS}\"" echo >>$file "" ;; * ) echo "$msgprefix:Error: invalid argument to option \`-l': \`$opt_l'" 1>&2 exit 1 ;; esac fi ;; esac exit 0 ##EOF## @ 1.51 log @*** empty log message *** @ text @@ 1.50 log @*** empty log message *** @ text @d9 1 a9 1 ## Version: 1.5.3 (19-Apr-2001) d68 1 a68 1 echo "This is GNU shtool, version 1.5.3 (19-Apr-2001)" d72 1 a72 1 echo "Usage: shtool [] [ [] []]" d108 1 a108 1 echo "GNU shtool 1.5.3 (19-Apr-2001)" d407 1 a407 1 term_bold='' d458 1 a458 1 if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[uU]'`" != . ]; then d500 30 a529 1 # determine host name d531 1 a548 3 # determine domain name domainname='' d608 2 d639 1 a639 1 # determine source(s) and destination d1331 1 a1331 1 [0-9]*.[0-9]*[sabp.][0-9]* ) d1415 1 a1415 1 else d1438 1 a1438 1 @ 1.49 log @*** empty log message *** @ text @d9 1 a9 1 ## Version: 1.5.2 (27-Feb-2001) d29 1 a29 1 ## Notice: Given that you include this file verbatim into your own d68 1 a68 1 echo "This is GNU shtool, version 1.5.2 (27-Feb-2001)" d86 2 a87 2 echo ' tarball [-t] [-v] [-o ] [-c ] [-d ] [-u' echo ' ] [-g ] [-e ] [ ...]' d108 1 a108 1 echo "GNU shtool 1.5.2 (27-Feb-2001)" d183 1 a183 1 str_usage="[-t] [-v] [-o ] [-c ] [-d ] [-u ] [-g ] [-e ] [ ...]" d766 6 @ 1.48 log @*** empty log message *** @ text @d4 1 a4 1 ## Copyright (c) 1994-2000 Ralf S. Engelschall d9 1 a9 1 ## Version: 1.5.1 (29-Jul-2000) d68 2 a69 2 echo "This is GNU shtool, version 1.5.1 (29-Jul-2000)" echo "Copyright (c) 1994-2000 Ralf S. Engelschall " d83 1 a83 1 echo ' [-e] [ ...] ' d108 1 a108 1 echo "GNU shtool 1.5.1 (29-Jul-2000)" d150 1 a150 1 str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] [ ...] " d152 1 a152 1 opt_spec="v.t.c.C.s.m:o:g:e:" d158 1 a158 1 opt_m="" d371 1 d383 1 a383 1 ## Copyright (c) 1998-2000 Ralf S. Engelschall d606 1 a606 1 ## Copyright (c) 1997-2000 Ralf S. Engelschall d636 1 a636 1 # If destination is a directory, append the input filename d642 1 a642 7 # Add a possible extension to src and dst if [ ".$opt_e" != . ]; then src="$src$opt_e" dst="$dst$opt_e" fi # Check for correct arguments d652 1 a652 1 # Make a temp file name in the destination directory d657 1 a657 1 # Verbosity d662 2 a663 2 # Copy or move the file name to the temp name # (because we might be not allowed to change the source) d679 10 a688 2 # Adjust the target file # (we do chmod last to preserve setuid bits) d707 1 a707 1 if [ ".$opt_m" != . ]; then d714 1 a714 1 # Determine whether to do a quick install d725 1 a725 1 # Finally install the file to the real destination d743 1 a743 1 ## Copyright (c) 1996-2000 Ralf S. Engelschall d752 1 a752 1 if [ ".$opt_f" = .no ] && [ ".$opt_p" = .no ]; then d802 1 a802 1 ## Copyright (c) 1996-2000 Ralf S. Engelschall d858 1 a858 1 ## Copyright (c) 1999-2000 Ralf S. Engelschall d884 1 a884 1 if [ $minusx "$path/$tool" ] && [ ! -d "$path/$tool" ]; then d910 1 a910 1 (cd $src && find . -type f -depth -print) |\ d1021 1 a1021 1 ## Copyright (c) 1999-2000 Ralf S. Engelschall d1234 1 a1234 1 ## Copyright (c) 1994-2000 Ralf S. Engelschall @ 1.47 log @*** empty log message *** @ text @d9 1 a9 1 ## Version: 1.5.0 (01-Jul-2000) d68 1 a68 1 echo "This is GNU shtool, version 1.5.0 (01-Jul-2000)" d108 1 a108 1 echo "GNU shtool 1.5.0 (01-Jul-2000)" d1315 2 a1316 1 awk -F: '{ printf("0x%X%02X%1X%02X", $1, $2, $3, $4); }'` d1480 17 @ 1.46 log @*** empty log message *** @ text @d9 1 a9 1 ## Version: 1.4.10 (18-Jun-2000) d47 1 a47 1 ## version Generate and maintain a version information file d68 1 a68 1 echo "This is GNU shtool, version 1.4.10 (18-Jun-2000)" d78 1 d90 2 a91 2 echo ' version [-l] [-n] [-p] [-s] [-i]' echo ' [-d] ' d108 5 a112 1 echo "GNU shtool 1.4.10 (18-Jun-2000)" d213 3 a215 3 str_usage="[-l] [-n] [-p] [-s] [-i] [-d] " arg_spec="1+" opt_spec="l:n:p:s:i:d:" d218 5 a222 5 opt_p="unknown" opt_s="unknown" opt_i="P" opt_d="NO" gen_tmpfile=yes d1230 1 a1230 1 ## version -- Generate and maintain a version information file d1232 1 a1232 1 ## Originally written for ePerl d1235 1 a1235 18 LANGUAGE="$opt_l" NAME="$opt_n" PREFIX="$opt_p" FULLVERSION="$opt_s" INCREASE="$opt_i" REPORT="$opt_d" FILE="$1" # determine language if [ ".$LANGUAGE" = .unknown ]; then case $FILE in *.txt ) LANGUAGE=txt ;; *.c ) LANGUAGE=c ;; *.pl | *.pm ) LANGUAGE=perl ;; *.py) LANGUAGE=python ;; * ) echo "$tool:Error: unknown language type" 1>&2; exit 1 ;; esac fi d1237 11 a1247 9 # determine prefix from name and vice versa if [ ".$PREFIX" = . -o ".$PREFIX" = .unknown ]; then if [ ".$NAME" != . -a ".$NAME" != .unknown ]; then PREFIX="$NAME" fi fi if [ ".$NAME" = . -o ".$NAME" = .unknown ]; then if [ ".$PREFIX" != . -a ".$PREFIX" != .unknown ]; then NAME="$PREFIX" d1249 16 d1267 17 a1283 62 # determine version date=unknown version=0 revision=0 bplevel=0 if [ ".$FULLVERSION" = .unknown ]; then if [ -r "$FILE" ]; then # grep out current information id=`grep 'Version [0-9]*.[0-9]*[.abps][0-9]* ([0-9]*-[a-zA-Z]*-[0-9]*)' $FILE | \ head -1 | \ sed -e 's%.*Version \([0-9]*\)\.\([0-9]*\)\([.abps]\)\([0-9]*\) (\([0-9]*-[a-zA-Z]*-[0-9]*\)).*%\1:\2:\3:\4:\5%'` version=`echo $id | awk -F: '{ print $1 }'` revision=`echo $id | awk -F: '{ print $2 }'` bptype=`echo $id | awk -F: '{ print $3 }'` bplevel=`echo $id | awk -F: '{ print $4 }'` date=`echo $id | awk -F: '{ print $5 }'` if [ .$REPORT = .NO ]; then case $INCREASE in b ) bplevel=`expr $bplevel + 1` bptype=b ;; a ) bplevel=`expr $bplevel + 1` bptype=a ;; s ) bplevel=`expr $bplevel + 1` bptype=s ;; P ) bplevel=`expr $bplevel + 1` bptype=. ;; p ) bplevel=`expr $bplevel + 1` bptype=p ;; r ) revision=`expr $revision + 1` bptype=. bplevel=0 ;; v ) version=`expr $version + 1` revision=0 bptype=. bplevel=0 ;; esac date=calc fi FULLVERSION="$version.$revision$bptype$bplevel" else # intialise to first version version=0 revision=5 bptype=b bplevel=0 date=calc fi else # take given version V=`echo $FULLVERSION | sed -e 's%\([0-9]*\)\.\([0-9]*\)\([.abps]\)\([0-9]*\).*%\1:\2:\3:\4%'` version=`echo $V | awk -F: '{ print $1 }'` revision=`echo $V | awk -F: '{ print $2 }'` bptype=`echo $V | awk -F: '{ print $3 }'` bplevel=`echo $V | awk -F: '{ print $4 }'` date=calc d1286 20 a1305 14 # determine hex value of version case $FULLVERSION in *.*a* ) HEX=`echo "$FULLVERSION" | sed -e 's/a.*//' | awk -F. '{ printf("%d%02d", $1, $2); }' && echo "$FULLVERSION" | sed -e 's/.*a//' | awk '{ printf("0%02d", $1); }'` ;; *.*b* ) HEX=`echo "$FULLVERSION" | sed -e 's/b.*//' | awk -F. '{ printf("%d%02d", $1, $2); }' && echo "$FULLVERSION" | sed -e 's/.*b//' | awk '{ printf("1%02d", $1); }'` ;; *.*.* ) HEX=`echo "$FULLVERSION" | awk -F. '{ printf("%d%02d2%02d", $1, $2, $3); }'` ;; esac d1307 6 a1312 11 # determine libtool version case $FULLVERSION in *.*a* ) LTV=`echo "$FULLVERSION" | sed -e 's/a.*//' | awk -F. '{ printf("%d:0", $1*10+$2); }'` ;; *.*b* ) LTV=`echo "$FULLVERSION" | sed -e 's/b.*//' | awk -F. '{ printf("%d:0", $1*10+$2); }'` ;; *.*.* ) LTV=`echo "$FULLVERSION" | awk -F. '{ printf("%d:%d", $1*10+$2, $3); }'` ;; d1314 4 a1317 6 # determine string out of filename # (don't try to optimize this in any way - portability!) FILESTR=`echo "$FILE" |\ tr 'abcdefghijklmnopqrstuvwxyz./%+' \ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ____' | sed -e 's/-/_/g'` d1320 1 a1320 1 if [ ".$date" = .calc ]; then d1345 1 a1345 1 date="${day}-${month}-${year}" d1348 15 a1362 2 if [ .$REPORT != .NO ]; then case $REPORT in d1364 1 a1364 4 echo "$version.$revision$bptype$bplevel ($date)" ;; short ) echo "$version.$revision$bptype$bplevel" d1367 1 a1367 1 echo "$LTV" d1370 113 a1482 1 echo "0x$HEX" a1484 2 rm -f $tmpfile >/dev/null 2>&1 exit 0 a1485 104 # create the version file according the the selected language echo "new version: $version.$revision$bptype$bplevel ($date)" case $LANGUAGE in txt ) cat >$tmpfile <<'EOT' This is @@NAME@@, Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@) EOT ;; c ) cat >$tmpfile <<'EOT' /* ** @@FILE@@ -- Version Information ** [automatically generated and maintained by GNU shtool] */ #ifdef _AS_HEADER #ifndef _@@FILESTR@@ #define _@@FILESTR@@ #define @@PREFIX@@_VERSION 0x@@HEX@@ extern const int @@PREFIX@@_Version; extern const char @@PREFIX@@_VersionStr[]; extern const char @@PREFIX@@_Hello[]; extern const char @@PREFIX@@_GNUVersion[]; extern const char @@PREFIX@@_WhatID[]; extern const char @@PREFIX@@_RCSIdentID[]; extern const char @@PREFIX@@_WebID[]; extern const char @@PREFIX@@_PlainID[]; #endif /* _@@FILESTR@@ */ #else const int @@PREFIX@@_Version = 0x@@HEX@@; const char @@PREFIX@@_VersionStr[] = "@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; const char @@PREFIX@@_Hello[] = "This is @@NAME@@, Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; const char @@PREFIX@@_GNUVersion[] = "@@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@"; const char @@PREFIX@@_WhatID[] = "@@(#)@@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; const char @@PREFIX@@_RCSIdentID[] = "$Id: @@NAME@@ @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ @@DAY@@-@@MONTH@@-@@YEAR@@ $"; const char @@PREFIX@@_WebID[] = "@@NAME@@/@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@"; const char @@PREFIX@@_PlainID[] = "@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@"; #endif EOT ;; perl ) cat >$tmpfile <<'EOT' ## ## @@FILE@@ -- Version Information ## [automatically generated and maintained by GNU shtool] ## $@@PREFIX@@_Version = 0x@@HEX@@; $@@PREFIX@@_VersionStr = "@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; $@@PREFIX@@_Hello = "This is @@NAME@@, Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; $@@PREFIX@@_GNUVersion = "@@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@"; $@@PREFIX@@_WhatID = "@@(#)@@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; $@@PREFIX@@_RCSIdentID = "\$Id: @@NAME@@ @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ @@DAY@@-@@MONTH@@-@@YEAR@@ $/"; $@@PREFIX@@_WebID = "@@NAME@@/@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@"; $@@PREFIX@@_PlainID = "@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@"; 1; EOT ;; python ) cat >$tmpfile <<'EOT' ## ## @@FILE@@ -- Version Information ## [automatically generated and maintained by GNU shtool] ## @@PREFIX@@_Version = 0x@@HEX@@ @@PREFIX@@_VersionStr = "@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)" @@PREFIX@@_Hello = "This is @@NAME@@, Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)" @@PREFIX@@_GNUVersion = "@@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@" @@PREFIX@@_WhatID = "@@(#)@@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)" @@PREFIX@@_RCSIdentID = "$Id: @@NAME@@ @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ @@DAY@@-@@MONTH@@-@@YEAR@@ $" @@PREFIX@@_WebID = "@@NAME@@/@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@" @@PREFIX@@_PlainID = "@@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@" EOT ;; esac # now create the version file rm -f $FILE >/dev/null 2>&1 sed \ -e "s|@@FILE@@|$FILE|g" \ -e "s|@@FILESTR@@|$FILESTR|g" \ -e "s|@@PREFIX@@|$PREFIX|g" \ -e "s|@@NAME@@|$NAME|g" \ -e "s|@@HEX@@|$HEX|g" \ -e "s|@@VERSION@@|$version|g" \ -e "s|@@REVISION@@|$revision|g" \ -e "s|@@BPTYPE@@|$bptype|g" \ -e "s|@@BPLEVEL@@|$bplevel|g" \ -e "s|@@YEAR@@|$year|g" \ -e "s|@@MONTH@@|$month|g" \ -e "s|@@DAY@@|$day|g" <$tmpfile >$FILE rm -f $tmpfile >/dev/null 2>&1 exit 0 @ 1.45 log @*** empty log message *** @ text @d9 2 a10 2 ## Version 1.4.9 (16-Apr-2000) ## Ingredients: 7/17 available modules d68 1 a68 1 echo "This is GNU shtool, version 1.4.9 (16-Apr-2000)" d82 1 a82 1 echo ' [-e] ' d107 1 a107 1 echo "GNU shtool 1.4.9 (16-Apr-2000)" d145 2 a146 2 str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] " arg_spec="2=" d604 8 a611 2 src="$1" dst="$2" d613 5 a617 5 # If destination is a directory, append the input filename if [ -d $dst ]; then dst=`echo "$dst" | sed -e 's:/$::'` dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'` dst="$dst/$dstfile" d620 4 a623 4 # Add a possible extension to src and dst if [ ".$opt_e" != . ]; then src="$src$opt_e" dst="$dst$opt_e" d626 25 a650 5 # Check for correct arguments if [ ".$src" = ".$dst" ]; then echo "$msgprefix:Error: source and destination are the same" 1>&2 exit 1 fi d652 4 a655 3 # Make a temp file name in the destination directory dstdir=`echo $dst | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;'` dsttmp="$dstdir/#INST@@$$#" d657 4 a660 4 # Verbosity if [ ".$opt_v" = .yes ]; then echo "$src -> $dst" 1>&2 fi d662 4 a665 8 # Copy or move the file name to the temp name # (because we might be not allowed to change the source) if [ ".$opt_C" = .yes ]; then opt_c=yes fi if [ ".$opt_c" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "cp $src $dsttmp" 1>&2 d667 10 a676 4 cp $src $dsttmp || exit $? else if [ ".$opt_t" = .yes ]; then echo "mv $src $dsttmp" 1>&2 a677 2 mv $src $dsttmp || exit $? fi d679 7 a685 5 # Adjust the target file # (we do chmod last to preserve setuid bits) if [ ".$opt_s" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "strip $dsttmp" 1>&2 d687 5 a691 5 strip $dsttmp || exit $? fi if [ ".$opt_o" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chown $opt_o $dsttmp" 1>&2 d693 5 a697 5 chown $opt_o $dsttmp || exit $? fi if [ ".$opt_g" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chgrp $opt_g $dsttmp" 1>&2 d699 5 a703 5 chgrp $opt_g $dsttmp || exit $? fi if [ ".$opt_m" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $dsttmp" 1>&2 a704 2 chmod $opt_m $dsttmp || exit $? fi d706 8 a713 7 # Determine whether to do a quick install # (has to be done _after_ the strip was already done) quick=no if [ ".$opt_C" = .yes ]; then if [ -r $dst ]; then if cmp -s $src $dst; then quick=yes a715 1 fi d717 11 a727 4 # Finally install the file to the real destination if [ $quick = yes ]; then if [ ".$opt_t" = .yes ]; then echo "rm -f $dsttmp" 1>&2 d729 1 a729 7 rm -f $dsttmp else if [ ".$opt_t" = .yes ]; then echo "rm -f $dst && mv $dsttmp $dst" 1>&2 fi rm -f $dst && mv $dsttmp $dst fi d744 1 a744 1 if [ ".$opt_f" = .no ]; then d1241 4 a1244 3 *.txt ) LANGUAGE=txt ;; *.c ) LANGUAGE=c ;; *.pl | *.pm ) LANGUAGE=perl ;; d1412 1 a1412 1 d1414 1 d1451 1 d1471 18 @ 1.44 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.8 (12-Mar-2000) d51 1 a51 1 ## table Pretty print a field-separated list as a table d53 1 a53 1 ## move Move files with simultan substitution d55 2 a56 2 ## mkshadow Make a shadow tree ## guessos Simple OS/platform guesser d68 1 a68 1 echo "This is GNU shtool, version 1.4.8 (12-Mar-2000)" d87 2 a88 2 echo ' scpp [-v] [-p] [-o] [-t] [-M] [-D]' echo ' [-C] [ ...]' d101 1 a101 1 echo ' slo -- -L -l [ -L -l ... ]' d107 1 a107 1 echo "GNU shtool 1.4.8 (12-Mar-2000)" a170 1 gen_tmpfile=yes d193 1 a193 1 str_usage="[-v] [-p] [-o] [-t] [-M] [-D] [-C] [ ...]" d196 1 a196 1 opt_spec="v.p.o:t:M:D:C:" d199 1 a403 1 # the most important terminals we directly know d405 1 d414 22 a435 10 esac # then try a possibly existing "tput" or "tcout" utility paths=`echo $PATH | sed -e 's/:/ /g'` for tool in tput tcout; do for dir in $paths; do if [ -r "$dir/$tool" ]; then for seq in bold md smso; do # smso is last bold="`$dir/$tool $seq 2>/dev/null`" if [ ".$bold" != . ]; then term_bold="$bold" d439 2 a440 8 if [ ".$term_bold" != . ]; then for seq in sgr0 me rmso reset; do # 'reset' is last norm="`$dir/$tool $seq 2>/dev/null`" if [ ".$norm" != . ]; then term_norm="$norm" break fi done d442 3 a444 7 break fi done if [ ".$term_bold" != . -a ".$term_norm" != . ]; then break; fi done d588 1 a588 1 # awk complains about some \xx sequences. d714 1 a714 1 # when the directory already exists... d717 1 a717 1 echo "$msgprefix:Error: file exists: $p" 1>&2 d724 1 a724 1 # when the directory has to be created d738 1 a738 1 pathcomp= d773 1 a773 7 cat >$tmpfile </dev/null; then a777 1 rm -f $tmpfile d829 1 a829 7 cat >$tmpfile </dev/null; then a833 1 rm -f $tmpfile d951 1 a951 1 echo "$msgprefix:Warning: cannot set user name \`$opt_u' (need root priviledges)" d958 1 a958 1 echo "$msgprefix:Warning: cannot set group name \`$opt_g' (need root priviledges)" d1022 7 a1028 1 $awk <$src ' d1391 1 a1391 1 ** [automatically generated and maintained by shtool] d1427 1 a1427 1 ## [automatically generated and maintained by shtool] @ 1.43 log @*** empty log message *** @ text @d4 1 a4 1 ## Copyright (c) 1994-1999 Ralf S. Engelschall d9 1 a9 1 ## Version 1.4.7 (24-Dec-1999) d68 2 a69 2 echo "This is GNU shtool, version 1.4.7 (24-Dec-1999)" echo "Copyright (c) 1994-1999 Ralf S. Engelschall " d107 1 a107 1 echo "GNU shtool 1.4.7 (24-Dec-1999)" d139 3 a141 1 opt_spec="ne" d146 7 a152 2 arg_spec="2" opt_spec="vtcCsm:o:g:e:" d162 4 a165 1 opt_spec="tfpm:" d173 3 a175 1 opt_spec="vt" d182 3 a184 1 opt_spec="tvo:c:d:u:g:e:" d197 3 a199 1 opt_spec="vpo:t:M:D:C:" d219 5 d237 1 a237 1 # inside shtool d242 1 a242 1 # standalone d244 1 a244 1 toolcmdhelp="sh.$tool" d249 2 a250 2 eval `echo $arg_spec | sed -e 's/^\([0-9]*\)\(.*\)/arg_NUMS="\1"; arg_MODE="\2"/'` test ".$arg_MODE" = . && arg_MODE="=" d253 2 a254 8 for opt in `echo "h$opt_spec" | sed -e 's/\([a-zA-Z0-9][:+]*\)/\1 /g'`; do opt_MODE="." eval `echo $opt |\ sed -e 's/^\([a-zA-Z0-9]\)/opt_THIS="\1";/' \ -e 's/";\([:+]\)/"; opt_MODE="\1";/'` eval "opt_MODE_${opt_THIS}=${opt_MODE}" test "$opt_MODE" = . && eval "opt_${opt_THIS}=no" done d272 1 a272 1 opt_PREV="" d282 1 a282 2 opt_OPT=`awk 'BEGIN { printf("%s", substr(OPT, 2)); }' \ "OPT=$1" d598 1 a598 1 ## Copyright (c) 1997-1999 Ralf S. Engelschall d705 1 a705 1 ## Copyright (c) 1996-1999 Ralf S. Engelschall d764 1 a764 1 ## Copyright (c) 1996-1999 Ralf S. Engelschall d827 1 a827 1 ## Copyright (c) 1999 Ralf S. Engelschall d997 2 a998 2 ## Copyright (c) 1999 Ralf S. Engelschall ## Originally written for GNU pth d1204 1 a1204 1 ## Copyright (c) 1994-1999 Ralf S. Engelschall @ 1.43.2.1 log @*** empty log message *** @ text @d4 1 a4 1 ## Copyright (c) 1994-2000 Ralf S. Engelschall d9 1 a9 1 ## Version 1.4.8 (12-Mar-2000) d68 2 a69 2 echo "This is GNU shtool, version 1.4.8 (12-Mar-2000)" echo "Copyright (c) 1994-2000 Ralf S. Engelschall " d107 1 a107 1 echo "GNU shtool 1.4.8 (12-Mar-2000)" d139 1 a139 3 opt_spec="n.e." opt_n=no opt_e=no d144 2 a145 7 arg_spec="2=" opt_spec="v.t.c.C.s.m:o:g:e:" opt_v=no opt_t=no opt_c=no opt_C=no opt_s=no d155 1 a155 4 opt_spec="t.f.p.m:" opt_t=no opt_f=no opt_p=no d163 1 a163 3 opt_spec="v.t." opt_v=no opt_t=no d170 1 a170 3 opt_spec="t.v.o:c:d:u:g:e:" opt_t=no opt_v=no d183 1 a183 3 opt_spec="v.p.o:t:M:D:C:" opt_v=no opt_p=no a202 5 -* ) echo "$0:Error: unknown option \`$tool'" 2>&1 echo "$0:Hint: run \`$0 -h' for usage" 2>&1 exit 1 ;; d216 1 a216 1 # used inside shtool script d221 1 a221 1 # used as standalone script d223 1 a223 1 toolcmdhelp="sh $0" d228 2 a229 2 eval `echo $arg_spec |\ sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'` d232 8 a239 2 eval `echo h.$opt_spec |\ sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'` d257 1 a257 1 opt_PREV='' d267 2 a268 1 opt_OPT=`echo "x$1" | cut -c3-` d291 1 a291 1 '.' ) d295 1 a295 1 ':' ) d299 1 a299 1 '+' ) d324 1 a324 1 '=' ) d331 1 a331 1 '+' ) d342 1 a344 2 elif [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" d346 3 a348 1 tmpdir="/tmp" d364 1 a364 1 ## Copyright (c) 1998-2000 Ralf S. Engelschall d585 1 a585 1 ## Copyright (c) 1997-2000 Ralf S. Engelschall d692 1 a692 1 ## Copyright (c) 1996-2000 Ralf S. Engelschall d751 1 a751 1 ## Copyright (c) 1996-2000 Ralf S. Engelschall d814 1 a814 1 ## Copyright (c) 1999-2000 Ralf S. Engelschall d984 2 a985 2 ## Copyright (c) 1999-2000 Ralf S. Engelschall ## Originally written for GNU Pth d1191 1 a1191 1 ## Copyright (c) 1994-2000 Ralf S. Engelschall @ 1.43.2.2 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.9 (16-Apr-2000) d51 1 a51 1 ## table Pretty-print a field-separated list as a table d53 1 a53 1 ## move Move files with simultaneous substitution d55 2 a56 2 ## mkshadow Make a shadow tree through symbolic links ## guessos Simple operating system guesser d68 1 a68 1 echo "This is GNU shtool, version 1.4.9 (16-Apr-2000)" d87 2 a88 2 echo ' scpp [-v] [-p] [-f] [-o] [-t] [-M]' echo ' [-D] [-C] [ ...]' d101 1 a101 1 echo ' slo [-p] -- -L -l [-L -l ...]' d107 1 a107 1 echo "GNU shtool 1.4.9 (16-Apr-2000)" d171 1 d194 1 a194 1 str_usage="[-v] [-p] [-f] [-o] [-t] [-M] [-D] [-C] [ ...]" d197 1 a197 1 opt_spec="v.p.f+o:t:M:D:C:" a199 1 opt_f="" d404 1 a405 1 # for the most important terminal types we directly know the sequences d414 10 a423 22 # for all others, we try to use a possibly existing `tput' or `tcout' utility * ) paths=`echo $PATH | sed -e 's/:/ /g'` for tool in tput tcout; do for dir in $paths; do if [ -r "$dir/$tool" ]; then for seq in bold md smso; do # 'smso' is last bold="`$dir/$tool $seq 2>/dev/null`" if [ ".$bold" != . ]; then term_bold="$bold" break fi done if [ ".$term_bold" != . ]; then for seq in sgr0 me rmso reset; do # 'reset' is last norm="`$dir/$tool $seq 2>/dev/null`" if [ ".$norm" != . ]; then term_norm="$norm" break fi done fi d427 8 a434 2 if [ ".$term_bold" != . -a ".$term_norm" != . ]; then break; d436 7 a442 3 done ;; esac d586 1 a586 1 # awk may complain about some \xx sequences. d712 1 a712 1 # if the directory already exists... d715 1 a715 1 echo "$msgprefix:Error: directory already exists: $p" 1>&2 d722 1 a722 1 # if the directory has to be created... d736 1 a736 1 pathcomp='' d771 7 a777 1 if [ -x /bin/sh ] 2>/dev/null; then d782 1 d834 7 a840 1 if [ -x /bin/sh ] 2>/dev/null; then d845 1 d963 1 a963 1 echo "$msgprefix:Warning: cannot set user name \`$opt_u' (would require root priviledges)" d970 1 a970 1 echo "$msgprefix:Warning: cannot set group name \`$opt_g' (would require root priviledges)" d1034 1 a1034 7 if [ ".$opt_f" = . ]; then inputcmd="cat $src" else inputcmd="sed $opt_f $src" fi $inputcmd |\ $awk ' d1397 1 a1397 1 ** [automatically generated and maintained by GNU shtool] d1433 1 a1433 1 ## [automatically generated and maintained by GNU shtool] @ 1.43.2.3 log @*** empty log message *** @ text @d9 2 a10 2 ## Version: 1.5.0 (01-Jul-2000) ## Contents: 7/17 available modules d47 1 a47 1 ## version Maintain a version information file d68 1 a68 1 echo "This is GNU shtool, version 1.5.0 (01-Jul-2000)" a77 1 echo ' -r, --recreate recreate this shtool script via shtoolize' d82 1 a82 1 echo ' [-e] [ ...] ' d89 2 a90 2 echo ' version [-l] [-n] [-p] [-s] [-e]' echo ' [-i] [-d] ' d107 1 a107 5 echo "GNU shtool 1.5.0 (01-Jul-2000)" exit 0 fi if [ ".$1" = ".-r" -o ".$1" = ."--recreate" ]; then shtoolize -oshtool echo install mkdir fixperm tarball scpp version d145 2 a146 2 str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] [ ...] " arg_spec="2+" d208 3 a210 3 str_usage="[-l] [-n] [-p] [-s] [-e] [-i] [-d] " arg_spec="1=" opt_spec="l:n:p:s:i:e.d:" d213 5 a217 5 opt_p="" opt_s="" opt_e="no" opt_i="" opt_d="short" d604 9 a612 8 # determine source(s) and destination argc=$# srcs="" while [ $# -gt 1 ]; do srcs="$srcs $1" shift done dstpath="$1" d614 4 a617 5 # type check for destination dstisdir=0 if [ -d $dstpath ]; then dstpath=`echo "$dstpath" | sed -e 's:/$::'` dstisdir=1 d620 3 a622 3 # consistency check for destination if [ $argc -gt 2 -a $dstisdir = 0 ]; then echo "$msgprefix:Error: multiple sources require destination to be directory" 1>&2 d626 8 a633 3 # iterate over all source(s) for src in $srcs; do dst=$dstpath d635 8 a642 4 # If destination is a directory, append the input filename if [ $dstisdir = 1 ]; then dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'` dst="$dst/$dstfile" d644 4 a647 5 # Add a possible extension to src and dst if [ ".$opt_e" != . ]; then src="$src$opt_e" dst="$dst$opt_e" d649 2 d652 5 a656 4 # Check for correct arguments if [ ".$src" = ".$dst" ]; then echo "$msgprefix:Warning: source and destination are the same - skipped" 1>&2 continue d658 5 a662 3 if [ -d "$src" ]; then echo "$msgprefix:Warning: source \`$src' is a directory - skipped" 1>&2 continue d664 5 a668 9 # Make a temp file name in the destination directory dsttmp=`echo $dst |\ sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;' \ -e "s;\$;/#INST@@$$#;"` # Verbosity if [ ".$opt_v" = .yes ]; then echo "$src -> $dst" 1>&2 d670 5 a674 16 # Copy or move the file name to the temp name # (because we might be not allowed to change the source) if [ ".$opt_C" = .yes ]; then opt_c=yes fi if [ ".$opt_c" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "cp $src $dsttmp" 1>&2 fi cp $src $dsttmp || exit $? else if [ ".$opt_t" = .yes ]; then echo "mv $src $dsttmp" 1>&2 fi mv $src $dsttmp || exit $? d676 2 d679 7 a685 5 # Adjust the target file # (we do chmod last to preserve setuid bits) if [ ".$opt_s" = .yes ]; then if [ ".$opt_t" = .yes ]; then echo "strip $dsttmp" 1>&2 a686 19 strip $dsttmp || exit $? fi if [ ".$opt_o" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chown $opt_o $dsttmp" 1>&2 fi chown $opt_o $dsttmp || exit $? fi if [ ".$opt_g" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chgrp $opt_g $dsttmp" 1>&2 fi chgrp $opt_g $dsttmp || exit $? fi if [ ".$opt_m" != . ]; then if [ ".$opt_t" = .yes ]; then echo "chmod $opt_m $dsttmp" 1>&2 fi chmod $opt_m $dsttmp || exit $? d688 1 d690 4 a693 9 # Determine whether to do a quick install # (has to be done _after_ the strip was already done) quick=no if [ ".$opt_C" = .yes ]; then if [ -r $dst ]; then if cmp -s $src $dst; then quick=yes fi fi d695 4 a698 12 # Finally install the file to the real destination if [ $quick = yes ]; then if [ ".$opt_t" = .yes ]; then echo "rm -f $dsttmp" 1>&2 fi rm -f $dsttmp else if [ ".$opt_t" = .yes ]; then echo "rm -f $dst && mv $dsttmp $dst" 1>&2 fi rm -f $dst && mv $dsttmp $dst d700 2 a701 1 done d716 1 a716 1 if [ ".$opt_f" = .no ] && [ ".$opt_p" = .no ]; then d1197 1 a1197 1 ## version -- Maintain a version information file d1199 1 a1199 1 ## Originally written for ePerl, rewritten from scratch for shtool d1202 17 a1218 1 file="$1" d1220 9 a1228 11 # determine prefix and name name="$opt_n" prefix="$opt_p" # determine current version triple="$opt_s" if [ ".$triple" != . ]; then # use given triple if [ ".`echo $triple | grep '[0-9]*.[0-9]*[sabp.][0-9]*'`" = . ]; then echo "$msgprefix:Error: invalid argument to option \`-s': \`$opt_s'" 1>&2 exit 1 a1229 16 eval `echo $triple |\ sed -e 's%\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\).*%\ ver="\1";rev="\2";typ="\3";lev="\4"%'` tim=calc elif [ -r $file ]; then # determine triple from given file eval `grep 'Version [0-9]*.[0-9]*[sabp.][0-9]* ([0-9]*-[a-zA-Z]*-[0-9]*)' $file |\ head -1 | sed -e 's%.*Version \([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\) (\([0-9]*-[a-zA-Z]*-[0-9]*\)).*%\ ver="\1";rev="\2";typ="\3";lev="\4";tim="\5"%'` else # intialise to first version ver=0 rev=1 typ=. lev=0 tim=calc d1232 62 a1293 17 # determine new version in batch if [ ".$opt_i" != . ]; then case $opt_i in v ) ver=`expr $ver + 1` rev=0 lev=0 ;; r ) rev=`expr $rev + 1` lev=0 ;; l ) lev=`expr $lev + 1` ;; * ) echo "$msgprefix:Error: invalid argument to option \`-i': \`$opt_i'" 1>&2 exit 1 ;; esac tim=calc d1296 14 a1309 20 # determine new version interactively if [ ".$opt_e" = .yes ]; then echo "old version: ${ver}.${rev}${typ}${lev}" while [ 1 ]; do echo dummy | awk '{ printf("new version: "); }' read triple case $triple in [0-9]*.[0-9]*[sabp.][0-9]* ) ;; * ) echo "$msgprefix:Error: invalid version string entered: \`$triple'" 1>&2 continue ;; esac break done eval `echo $triple |\ sed -e 's%^\([0-9]*\)\.\([0-9]*\)\([sabp.]\)\([0-9]*\)$%\ ver="\1";rev="\2";typ="\3";lev="\4"%'` tim=calc fi d1311 11 a1321 6 # determine hexadecimal and libtool value of version case $typ in a ) typnum=0; levnum=$lev ;; b ) typnum=1; levnum=$lev ;; p | . ) typnum=2; levnum=$lev ;; s ) typnum=15; levnum=255 ;; # snapshots are special d1323 6 a1328 4 hex=`echo "$ver:$rev:$typnum:$levnum" |\ awk -F: '{ printf("0x%X%02X%1X%02X", $1, $2, $3, $4); }'` ltv=`echo "$ver:$rev:$typnum:$levnum" |\ awk -F: '{ printf("%d:%d", $1*10 + $2, $3*10 + $4); }'` d1331 1 a1331 1 if [ ".$tim" = .calc ]; then d1356 1 a1356 1 tim="${day}-${month}-${year}" d1359 5 a1363 12 # perform result actions mode=show if [ ".$opt_i" != . ]; then mode=edit elif [ ".$opt_e" = .yes ]; then mode=edit elif [ ".$opt_s" != . ]; then mode=edit fi if [ ".$mode" = .show ]; then # just display the current version case $opt_d in d1365 1 a1365 4 echo "${ver}.${rev}${typ}${lev}" ;; long ) echo "${ver}.${rev}${typ}${lev} ($tim)" d1368 1 a1368 1 echo "${ltv}" d1371 1 a1371 4 echo "${hex}" ;; * ) echo "$msgprefix:Error: invalid argument to option \`-d': \`$opt_d'" 1>&2 exit 1 d1374 3 a1376 2 else # update the version file d1378 83 a1460 107 # pre-generate various strings triple="${ver}.${rev}${typ}${lev}" vHex="$hex" vShort="${triple}" vLong="${triple} (${tim})" vTeX="This is ${name}, Version ${triple} (${tim})" vGNU="${name} ${triple} (${tim})" vWeb="${name}/${triple}" vSCCS="@@(#)${name} ${triple} (${tim})" vRCS="\$Id: ${name} ${triple} (${tim}) \$" # determine string out of filename # (do NOT try to optimize this in any way because of portability) filestr=`echo $file |\ tr 'abcdefghijklmnopqrstuvwxyz./%+' \ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ____' | sed -e 's/-/_/g'` # generate uppercase prefix prefixupper=`echo $prefix |\ tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` # create the version file according the the selected language echo "new version: ${vLong}" cp /dev/null $file case $opt_l in txt ) echo >>$file "" echo >>$file " ${file} -- Version Information for ${name} (syntax: Text)" echo >>$file " [automatically generated and maintained by GNU shtool]" echo >>$file "" echo >>$file " $vTeX" echo >>$file "" ;; c ) echo >>$file "/*" echo >>$file "** ${file} -- Version Information for ${name} (syntax: C/C++)" echo >>$file "** [automatically generated and maintained by GNU shtool]" echo >>$file "*/" echo >>$file "" echo >>$file "#ifdef _${filestr}_AS_HEADER_" echo >>$file "" echo >>$file "#ifndef _${filestr}_" echo >>$file "#define _${filestr}_" echo >>$file "" echo >>$file "#define ${prefixupper}VERSION ${vHex}" echo >>$file "" echo >>$file "typedef struct {" echo >>$file " const int v_hex;" echo >>$file " const char *v_short;" echo >>$file " const char *v_long;" echo >>$file " const char *v_tex;" echo >>$file " const char *v_gnu;" echo >>$file " const char *v_web;" echo >>$file " const char *v_sccs;" echo >>$file " const char *v_rcs;" echo >>$file "} ${prefix}version_t;" echo >>$file "" echo >>$file "extern ${prefix}version_t ${prefix}version;" echo >>$file "" echo >>$file "#endif /* _${filestr}_ */" echo >>$file "" echo >>$file "#else /* _${filestr}_AS_HEADER_ */" echo >>$file "" echo >>$file "#define _${filestr}_AS_HEADER_" echo >>$file "#include \"${file}\"" echo >>$file "#undef _${filestr}_AS_HEADER_" echo >>$file "" echo >>$file "${prefix}version_t ${prefix}version = {" echo >>$file " ${vHex}," echo >>$file " \"${vShort}\"," echo >>$file " \"${vLong}\"," echo >>$file " \"${vTeX}\"," echo >>$file " \"${vGNU}\"," echo >>$file " \"${vWeb}\"," echo >>$file " \"${vSCCS}\"," echo >>$file " \"${vRCS}\"" echo >>$file "};" echo >>$file "" echo >>$file "#endif /* _${filestr}_AS_HEADER_ */" echo >>$file "" ;; perl ) echo >>$file "##" echo >>$file "## ${file} -- Version Information for ${name} (syntax: Perl)" echo >>$file "## [automatically generated and maintained by GNU shtool]" echo >>$file "##" echo >>$file "" echo >>$file "my \$${prefix}version = {" echo >>$file " 'v_hex' => ${vHex}," echo >>$file " 'v_short' => \"${vShort}\"," echo >>$file " 'v_long' => \"${vLong}\"," echo >>$file " 'v_tex' => \"${vTeX}\"," echo >>$file " 'v_gnu' => \"${vGNU}\"," echo >>$file " 'v_web' => \"${vWeb}\"," echo >>$file " 'v_sccs' => \"${vSCCS}\"," echo >>$file " 'v_rcs' => \"\\${vRCS}/\"" echo >>$file "};" echo >>$file "" echo >>$file "1;" echo >>$file "" ;; * ) echo "$msgprefix:Error: invalid argument to option \`-l': \`$opt_l'" 1>&2 exit 1 ;; esac fi @ 1.43.2.4 log @*** empty log message *** @ text @d9 1 a9 1 ## Version: 1.5.1 (29-Jul-2000) d68 1 a68 1 echo "This is GNU shtool, version 1.5.1 (29-Jul-2000)" d108 1 a108 1 echo "GNU shtool 1.5.1 (29-Jul-2000)" d1315 1 a1315 2 awk -F: '{ printf("0x%x%02x%1x%02x", $1, $2, $3, $4); }' |\ tr 'abcdef' 'ABCDEF'` a1478 17 echo >>$file "" ;; python ) echo >>$file "##" echo >>$file "## ${file} -- Version Information for ${name} (syntax: Python)" echo >>$file "## [automatically generated and maintained by GNU shtool]" echo >>$file "##" echo >>$file "" echo >>$file "class ${prefix}version:" echo >>$file " v_hex = ${vHex}" echo >>$file " v_short = \"${vShort}\"" echo >>$file " v_long = \"${vLong}\"" echo >>$file " v_tex = \"${vTeX}\"" echo >>$file " v_gnu = \"${vGNU}\"" echo >>$file " v_web = \"${vWeb}\"" echo >>$file " v_sccs = \"${vSCCS}\"" echo >>$file " v_rcs = \"${vRCS}\"" @ 1.43.2.5 log @*** empty log message *** @ text @d4 1 a4 1 ## Copyright (c) 1994-2001 Ralf S. Engelschall d9 1 a9 1 ## Version: 1.5.2 (27-Feb-2001) d68 2 a69 2 echo "This is GNU shtool, version 1.5.2 (27-Feb-2001)" echo "Copyright (c) 1994-2001 Ralf S. Engelschall " d83 1 a83 1 echo ' [-e] [ ...] ' d108 1 a108 1 echo "GNU shtool 1.5.2 (27-Feb-2001)" d150 1 a150 1 str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] [ ...] " d152 1 a152 1 opt_spec="v.t.c.C.s.m:o:g:e+" d158 1 a158 1 opt_m="0755" a370 1 chmod 600 $tmpfile d382 1 a382 1 ## Copyright (c) 1998-2001 Ralf S. Engelschall d605 1 a605 1 ## Copyright (c) 1997-2001 Ralf S. Engelschall d635 1 a635 1 # if destination is a directory, append the input filename d641 7 a647 1 # check for correct arguments d657 1 a657 1 # make a temp file name in the destination directory d662 1 a662 1 # verbosity d667 2 a668 2 # copy or move the file name to the temp name # (because we might be not allowed to change the source) d684 2 a685 10 # adjust the target file if [ ".$opt_e" != . ]; then sed='sed' for e in $opt_e; do sed="$sed -e '$e'" done cp $dsttmp $dsttmp.old eval "$sed <$dsttmp.old >$dsttmp" || exit $? rm -f $dsttmp.old fi d704 1 a704 1 if [ ".$opt_m" != ".-" ]; then d711 1 a711 1 # determine whether to do a quick install d722 1 a722 1 # finally, install the file to the real destination d740 1 a740 1 ## Copyright (c) 1996-2001 Ralf S. Engelschall d749 1 a749 1 if [ ".$opt_f" = .no -a ".$opt_p" = .no ]; then d799 1 a799 1 ## Copyright (c) 1996-2001 Ralf S. Engelschall d855 1 a855 1 ## Copyright (c) 1999-2001 Ralf S. Engelschall d881 1 a881 1 if [ $minusx "$path/$tool" -a ! -d "$path/$tool" ]; then d907 1 a907 1 (cd $src && $prg_find . -type f -depth -print) |\ d1018 1 a1018 1 ## Copyright (c) 1999-2001 Ralf S. Engelschall d1231 1 a1231 1 ## Copyright (c) 1994-2001 Ralf S. Engelschall @ 1.42 log @*** empty log message *** @ text @d814 1 a814 1 ## Copyright (c) 1999-2000 Ralf S. Engelschall d984 1 a984 1 ## Copyright (c) 1999-2000 Ralf S. Engelschall @ 1.41 log @*** empty log message *** @ text @d814 1 a814 1 ## Copyright (c) 1999 Ralf S. Engelschall d984 1 a984 1 ## Copyright (c) 1999 Ralf S. Engelschall @ 1.40 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.6 (05-Sep-1999) d68 1 a68 1 echo "This is GNU shtool, version 1.4.6 (05-Sep-1999)" d107 1 a107 1 echo "GNU shtool 1.4.6 (05-Sep-1999)" d146 4 d156 1 d170 6 a175 1 opt_spec="tvo:c:d:u:g:e:!" d183 1 a183 1 opt_spec="vpo:!t:!M:!D:!C:!" d194 1 a194 1 opt_spec="l:!n:!p:!s:!i:!d:!" d232 2 a233 2 for opt in `echo "h$opt_spec" | sed -e 's/\([a-zA-Z0-9][!:+]*\)/\1 /g'`; do opt_MODE="."; opt_INIT="." d236 1 a236 2 -e 's/";\([:+]\)/"; opt_MODE="\1";/' \ -e 's/";\(!\)/"; opt_INIT="\1"/'` d238 1 a238 6 if [ ".$opt_INIT" != ".!" ]; then case "$opt_MODE" in "." ) eval "opt_${opt_THIS}=no" ;; ":"|"+" ) eval "opt_${opt_THIS}=\"\"" ;; esac fi d570 1 a570 1 echo $seo $text d575 1 a575 1 echo $seo $minusn $text @ 1.40.2.1 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.7 (24-Dec-1999) d68 1 a68 1 echo "This is GNU shtool, version 1.4.7 (24-Dec-1999)" d107 1 a107 1 echo "GNU shtool 1.4.7 (24-Dec-1999)" a145 4 opt_m="" opt_o="" opt_g="" opt_e="" a151 1 opt_m="" d165 1 a165 6 opt_spec="tvo:c:d:u:g:e:" opt_o="" opt_c="" opt_d="" opt_u="" opt_g="" d173 1 a173 1 opt_spec="vpo:t:M:D:C:" d184 1 a184 1 opt_spec="l:n:p:s:i:d:" d222 2 a223 2 for opt in `echo "h$opt_spec" | sed -e 's/\([a-zA-Z0-9][:+]*\)/\1 /g'`; do opt_MODE="." d226 2 a227 1 -e 's/";\([:+]\)/"; opt_MODE="\1";/'` d229 6 a234 1 test "$opt_MODE" = . && eval "opt_${opt_THIS}=no" d566 1 a566 1 echo $seo "$text" d571 1 a571 1 echo $seo $minusn "$text" @ 1.39 log @*** empty log message *** @ text @d10 1 a10 1 ## Ingredients: all available modules d42 8 a53 2 ## install Install a program, script or datafile ## mkdir Make one or more directories a55 2 ## fixperm Fix file permissions inside a source tree ## tarball Roll distribution tarballs a58 2 ## scpp Sharing C Pre-Processor ## version Generate and maintain a version information file a80 4 echo ' mdate [-n] [-z] [-s] [-d] [-f] [-o] ' echo ' table [-F] [-w] [-c] [-s] ...' echo ' prop [-p]' echo ' move [-v] [-t] [-e] [-p] ' a83 2 echo ' mkln [-t] [-f] [-s] [ ...] ' echo ' mkshadow [-v] [-t] [-a] ' a86 3 echo ' guessos ' echo ' arx [-t] [-C] [ ...]' echo ' slo -- -L -l [ -L -l ... ]' d91 11 d116 1 a116 1 echo|mdate|table|prop|move|install|mkdir|mkln|mkshadow|fixperm|tarball|guessos|arx|slo|scpp|version|path ) a140 30 mdate ) str_tool="mdate" str_usage="[-n] [-z] [-s] [-d] [-f] [-o] " arg_spec="1" opt_spec="nzsdf:!o:!" opt_f=" " opt_o="dmy" ;; table ) str_tool="table" str_usage="[-F] [-w] [-c] [-s] ..." arg_spec="1+" opt_spec="F:!w:!c:!s:!" opt_F=":" opt_w=15 opt_c=3 opt_s=79 ;; prop ) str_tool="prop" str_usage="[-p]" arg_spec="0" opt_spec="p:" ;; move ) str_tool="move" str_usage="[-v] [-t] [-e] [-p] " arg_spec="2" opt_spec="vtep" ;; a152 12 mkln ) str_tool="mkln" str_usage="[-t] [-f] [-s] [ ...] " arg_spec="2+" opt_spec="tfs" ;; mkshadow ) str_tool="mkshadow" str_usage="[-v] [-t] [-a] " arg_spec="2" opt_spec="vta" ;; a167 19 guessos ) str_tool="guessos" str_usage="" arg_spec="0" opt_spec="" ;; arx ) str_tool="arx" str_usage="[-t] [-C] [ ...]" arg_spec="2+" opt_spec="tC:!" opt_C="ar" ;; slo ) str_tool="slo" str_usage="-- -L -l [ -L -l ... ]" arg_spec="1+" opt_spec="" ;; a192 8 path ) str_tool="path" str_usage="[-s] [-r] [-d] [-b] [-m] [-p] [ ...]" gen_tmpfile=yes arg_spec="1+" opt_spec="srdbmp:!" opt_p="$PATH" ;; a577 326 mdate ) ## ## mdate -- Pretty-print modification time of a file or dir ## Copyright (c) 1995-1997 Free Software Foundation, Inc. ## Originally idea and basis code by Ulrich Drepper ## Enhanced by Ralf S. Engelschall for shtool ## fod="$1" case "$opt_o" in [dmy][dmy][dmy] ) ;; * ) echo "$msgprefix:Error: invalid argument to option \`-o': $opt_o" 1>&2 exit 1 ;; esac if [ ! -r "$fod" ]; then echo "$msgprefix:Error: file or directory not found: $fod" 1>&2 exit 1 fi # prevent "date" giving response in another language LANG=C; export LANG LC_ALL=C; export LC_ALL LC_TIME=C; export LC_TIME # get the extended ls output of the file or directory. if ls -L /dev/null >/dev/null 2>&1; then set - x`ls -L -l -d $fod` else set - x`ls -l -d $fod` fi # The month is at least the fourth argument # (3 shifts here, the next inside the loop). shift; shift; shift # Find the month. Next argument is day, followed by the year or time. month="" while [ ".$month" = . ]; do shift case $1 in Jan) month=January; nummonth=1 ;; Feb) month=February; nummonth=2 ;; Mar) month=March; nummonth=3 ;; Apr) month=April; nummonth=4 ;; May) month=May; nummonth=5 ;; Jun) month=June; nummonth=6 ;; Jul) month=July; nummonth=7 ;; Aug) month=August; nummonth=8 ;; Sep) month=September; nummonth=9 ;; Oct) month=October; nummonth=10 ;; Nov) month=November; nummonth=11 ;; Dec) month=December; nummonth=12 ;; esac done day="$2" year="$3" # We finally have to deal with the problem that the "ls" output # gives either the time of the day or the year. case $year in *:*) this_year=`date '+%Y' 2>/dev/null` if [ ".$this_year" = . ]; then this_year=`date '+%y'` case $this_year in [5-9][0-9]) this_year="19$this_year" ;; [0-4][0-9]) this_year="20$this_year" ;; esac fi # for the following months of the last year the time notation # is usually also used for files modified in the last year. this_month=`date '+%m'` if (expr $nummonth \> $this_month) >/dev/null; then this_year=`expr $this_year - 1` fi year="$this_year" ;; esac # Optionally fill day and month with leeding zeros if [ ".$opt_z" = .yes ]; then case $day in [0-9][0-9] ) ;; [0-9] ) day="0$day" ;; esac case $nummonth in [0-9][0-9] ) ;; [0-9] ) nummonth="0$nummonth" ;; esac fi # Optionally use digits for month if [ ".$opt_d" = .yes ]; then month="$nummonth" fi # Optionally shorten the month name to three characters if [ ".$opt_s" = .yes ]; then month=`echo $month | cut -c1-3` fi # Output the resulting date string echo dummy | awk '{ for (i = 0; i < 3; i++) { now = substr(order, 1, 1); order = substr(order, 2); if (now == "d") out = day; else if (now == "m") out = month; else if (now == "y") out = year; if (i < 2) printf("%s%s", out, field); else printf("%s", out); } if (newline != "yes") printf("\n"); }' "day=$day" "month=$month" "year=$year" \ "field=$opt_f" "order=$opt_o" "newline=$opt_n" ;; table ) ## ## table -- Pretty print a field-separated list as a table ## Copyright (c) 1998-1999 Ralf S. Engelschall ## Originally written for Apache ## if [ $opt_c -gt 4 ]; then echo "$msgprefix:Error: Invalid number of colums (1..4 allowed only)" 1>&2 exit 1 fi case "x$opt_F" in x? ) ;; * ) echo "$msgprefix:Error: Invalid separator (one char allowed only)" 1>&2; exit 1 ;; esac # split the list into a table list=` IFS="$opt_F" for entry in $*; do if [ ".$entry" != . ]; then echo "$entry" fi done |\ awk " BEGIN { list = \"\"; n = 0; } { list = list \\$1; n = n + 1; if (n < $opt_c) { list = list \":\"; } if (n == $opt_c) { list = list \"\\n\"; n = 0; } } END { print list; } " ` # format table cells and make sure table # doesn't exceed maximum width OIFS="$IFS" IFS=' ' for entry in $list; do case $opt_c in 1 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s\\n\", \$1); }'" ;; 2 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s %-${opt_w}s\\n\", \$1, \$2); }'" ;; 3 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s %-${opt_w}s %-${opt_w}s\\n\", \$1, \$2, \$3); }'" ;; 4 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${opt_w}s %-${opt_w}s %-${opt_w}s %-${opt_w}s\\n\", \$1, \$2, \$3, \$4); }'" ;; esac done |\ awk "{ if (length(\$0) > $opt_s) { printf(\"%s\\n\", substr(\$0, 0, $opt_s-1)); } else { print \$0; } }" IFS="$OIFS" ;; prop ) ## ## prop -- Display progress with a running propeller ## Copyright (c) 1998-1999 Ralf S. Engelschall ## Originally written for mod_ssl ## perl='' for dir in `echo $PATH | sed -e 's/:/ /g'` .; do if [ -f "$dir/perl" ]; then perl="$dir/perl" break fi done if [ ".$perl" != . ]; then # Perl is preferred because writing to STDERR in # Perl really writes immediately as one would expect $perl -e ' @@p = ("|","/","-","\\"); $i = 0; while () { printf(STDERR "\r%s...%s\b", $ARGV[0], $p[$i++]); $i = 0 if ($i > 3); } printf(STDERR "\r%s \n", $ARGV[0]); ' "$opt_p" else # But when Perl doesn't exists we use Awk even # some Awk's buffer even the /dev/stderr writing :-( awk ' BEGIN { split("|#/#-#\\", p, "#"); i = 1; } { printf("\r%s%c\b", prefix, p[i++]) > "/dev/stderr"; if (i > 4) { i = 1; } } END { printf("\r%s \n", prefix) > "/dev/stderr"; } ' "prefix=$opt_p" fi ;; move ) ## ## move -- Move files with simultan substitution ## Copyright (c) 1999 Ralf S. Engelschall ## Originally written for shtool ## src="$1" dst="$2" # consistency checks if [ ".$src" = . -o ".$dst" = . ]; then echo "$msgprefix:Error: Invalid arguments" 1>&2 exit 1 fi if [ ".$src" = ".$dst" ]; then echo "$msgprefix:Error: Source and destination files are the same" 1>&2 exit 1 fi expsrc="$src" if [ ".$opt_e" = .yes ]; then expsrc="`echo $expsrc`" fi if [ ".$opt_e" = .yes ]; then if [ ".`echo "$src" | sed -e 's;^.*\\*.*$;;'`" = ".$src" ]; then echo "$msgprefix:Error: Source doesn't contain wildcard ('*'): $dst" 1>&2 exit 1 fi if [ ".`echo "$dst" | sed -e 's;^.*%[1-9].*$;;'`" = ".$dst" ]; then echo "$msgprefix:Error: Destination doesn't contain substitution ('%N'): $dst" 1>&2 exit 1 fi if [ ".$expsrc" = ".$src" ]; then echo "$msgprefix:Error: Sources not found or no asterisk : $src" 1>&2 exit 1 fi else if [ ! -r "$src" ]; then echo "$msgprefix:Error: Source not found: $src" 1>&2 exit 1 fi fi # determine substitution patterns if [ ".$opt_e" = .yes ]; then srcpat=`echo "$src" | sed -e 's/\\./\\\\./g' -e 's/;/\\;/g' -e 's;\\*;\\\\(.*\\\\);g'` dstpat=`echo "$dst" | sed -e 's;%\([1-9]\);\\\\\1;g'` fi # iterate over source(s) for onesrc in $expsrc; do if [ .$opt_e = .yes ]; then onedst=`echo $onesrc | sed -e "s;$srcpat;$dstpat;"` else onedst="$dst" fi errorstatus=0 if [ ".$opt_v" = .yes ]; then echo "$onesrc -> $onedst" fi if [ ".$opt_p" = .yes ]; then if [ -r $onedst ]; then if cmp -s $onesrc $onedst; then if [ ".$opt_t" = .yes ]; then echo "rm -f $onesrc" 1>&2 fi rm -f $onesrc || errorstatus=$? else if [ ".$opt_t" = .yes ]; then echo "mv -f $onesrc $onedst" 1>&2 fi mv -f $onesrc $onedst || errorstatus=$? fi else if [ ".$opt_t" = .yes ]; then echo "mv -f $onesrc $onedst" 1>&2 fi mv -f $onesrc $onedst || errorstatus=$? fi else if [ ".$opt_t" = .yes ]; then echo "mv -f $onesrc $onedst" 1>&2 fi mv -f $onesrc $onedst || errorstatus=$? fi if [ $errorstatus -ne 0 ]; then break; fi done exit $errorstatus ;; a743 245 mkln ) ## ## mkln -- Make link with calculation of relative paths ## Copyright (c) 1999 Ralf S. Engelschall ## Originally written for shtool ## args=$? srcs="" while [ $# -gt 1 ]; do srcs="$srcs $1" shift done dst="$1" if [ ! -d $dst ]; then if [ $args -gt 2 ]; then echo "$msgprefix:Error: multiple sources not allowed when target isn't a directory" 1>&2 exit 1 fi fi # determine link options lnopt="" if [ ".$opt_f" = .yes ]; then lnopt="$lnopt -f" fi if [ ".$opt_s" = .yes ]; then lnopt="$lnopt -s" fi # iterate over sources for src in $srcs; do # determine if one of the paths is an absolute path, # because then we _have_ to use an absolute symlink oneisabs=0 srcisabs=0 dstisabs=0 case $src in /* ) oneisabs=1; srcisabs=1 ;; esac case $dst in /* ) oneisabs=1; dstisabs=1 ;; esac # split source and destination into dir and base name if [ -d $src ]; then srcdir=`echo $src | sed -e 's;/*$;;'` srcbase="" else srcdir=`echo $src | sed -e 's;^[^/]*$;;' -e 's;^\(.*/\)[^/]*$;\1;' -e 's;\(.\)/$;\1;'` srcbase=`echo $src | sed -e 's;.*/\([^/]*\)$;\1;'` fi if [ -d $dst ]; then dstdir=`echo $dst | sed -e 's;/*$;;'` dstbase="" else dstdir=`echo $dst | sed -e 's;^[^/]*$;;' -e 's;^\(.*/\)[^/]*$;\1;' -e 's;\(.\)/$;\1;'` dstbase=`echo $dst | sed -e 's;.*/\([^/]*\)$;\1;'` fi # consistency check if [ ".$dstdir" != . ]; then if [ ! -d $dstdir ]; then echo "$msgprefix:Error: destination directory not found: $dstdir" 1>&2 exit 1 fi fi # make sure the source is reachable from the destination if [ $dstisabs = 1 ]; then if [ $srcisabs = 0 ]; then if [ -d $srcdir ]; then srcdir="`cd $srcdir; pwd | sed -e 's;/*$;;'`" srcisabs=1 oneisabs=1 fi fi fi # split away a common prefix prefix="" if [ ".$srcdir" = ".$dstdir" ] && [ ".$srcdir" != . ]; then prefix="$srcdir/" srcdir="" dstdir="" else while [ ".$srcdir" != . ] && [ ".$dstdir" != . ]; do presrc=`echo $srcdir | sed -e 's;^\([^/]*\)/.*;\1;'` predst=`echo $dstdir | sed -e 's;^\([^/]*\)/.*;\1;'` if [ ".$presrc" != ".$predst" ]; then break fi prefix="$prefix$presrc/" srcdir=`echo $srcdir | sed -e 's;^[^/]*/*;;'` dstdir=`echo $dstdir | sed -e 's;^[^/]*/*;;'` done fi # destination prefix is just the common prefix dstpre="$prefix" # determine source prefix which is the reverse directory # step-up corresponding to the destination directory srcpre="" if [ $oneisabs = 0 ] || [ ".$prefix" != . -a ".$prefix" != ./ ]; then pl="$dstdir/" OIFS="$IFS"; IFS='/' for pe in $pl; do [ ".$pe" = . ] && continue srcpre="../$srcpre" done IFS="$OIFS" else if [ $srcisabs = 1 ]; then srcpre="$prefix" fi fi # determine destination symlink name if [ ".$dstbase" = . ]; then if [ ".$srcbase" != . ]; then dstbase="$srcbase" else dstbase=`echo "$prefix$srcdir" | sed -e 's;/*$;;' -e 's;.*/\([^/]*\)$;\1;'` fi fi # now finalize source and destination directory paths srcdir=`echo $srcdir | sed -e 's;\([^/]\)$;\1/;'` dstdir=`echo $dstdir | sed -e 's;\([^/]\)$;\1/;'` # run the final link command if [ ".$opt_t" = .yes ]; then echo "ln$lnopt $srcpre$srcdir$srcbase $dstpre$dstdir$dstbase" fi eval ln$lnopt $srcpre$srcdir$srcbase $dstpre$dstdir$dstbase done ;; mkshadow ) ## ## mkshadow -- Make a shadow tree ## Copyright (c) 1998-1999 Ralf S. Engelschall ## Originally written for Apache ## # source and destination directory src=`echo "$1" | sed -e 's:/$::'` dst=`echo "$2" | sed -e 's:/$::'` # check whether source exists if [ ! -d $src ]; then echo "$msgprefix:Error: source directory not found: \`$src'" 1>&2 exit 1 fi # determine if one of the paths is an absolute path, # because then we have to use an absolute symlink oneisabs=0 case $src in /* ) oneisabs=1 ;; esac case $dst in /* ) oneisabs=1 ;; esac # determine reverse directory for destination directory dstrevdir='' if [ $oneisabs = 0 ]; then # (inlined fp2rp) OIFS="$IFS"; IFS='/' for pe in $dst; do dstrevdir="../$dstrevdir" done IFS="$OIFS" else src="`cd $src; pwd`"; fi # create directory tree at destination if [ ! -d $dst ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $dst" 1>&2 fi mkdir $dst fi if [ ".$opt_a" = .yes ]; then DIRS=`cd $src; find . -type d -print |\ sed -e '/^\.$/d' -e 's:^\./::'` else DIRS=`cd $src; find . -type d -print |\ sed -e '/\/CVS/d' -e '/^\.$/d' -e 's:^\./::'` fi for dir in $DIRS; do if [ ".$opt_t" = .yes ]; then echo "mkdir $dst/$dir" 1>&2 fi mkdir $dst/$dir done # fill directory tree with symlinks to files if [ ".$opt_a" = .yes ]; then FILES="`cd $src; find . -depth -print |\ sed -e 's/^\.\///'`" else FILES="`cd $src; find . -depth -print |\ sed -e '/\.o$/d' -e '/\.a$/d' -e '/\.so$/d' \ -e '/\.cvsignore$/d' -e '/\/CVS/d' \ -e '/\/\.#/d' -e '/\.orig$/d' \ -e 's/^\.\///'`" fi for file in $FILES; do # don't use `-type f' above for find because of symlinks if [ -d "$src/$file" ]; then continue fi basename=`echo $file | sed -e 's:^.*/::'` dir=`echo $file | sed -e 's:[^/]*$::' -e 's:/$::' -e 's:$:/:' -e 's:^/$::'` from=`echo "$src/$file" | sed -e 's/^\.\///'` to="$dst/$dir$basename" if [ $oneisabs = 0 ]; then if [ ".$dir" != . ]; then subdir=`echo $dir | sed -e 's:/$::'` # (inlined fp2rp) revdir='' OIFS="$IFS"; IFS='/' for pe in $subdir; do revdir="../$revdir" done IFS="$OIFS" # finalize from from="$revdir$from" fi from="$dstrevdir$from" fi if [ ".$opt_v" = .yes ]; then echo " $to" 1>&2 fi if [ ".$opt_t" = .yes ]; then echo "ln -s $from $to" 1>&2 fi ln -s $from $to done ;; a976 480 guessos ) ## ## guessos -- Simple OS/platform guesser ## Copyright (c) 1996-1999 The Apache Group, http://www.apache.org/ ## The Apache license applies (see http://www.apache.org/docs/LICENSE) ## Originally written for Apache ## MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown" RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown" SYSTEM=`(uname -s) 2>/dev/null` || SYSTEM="unknown" VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown" XREL=`(uname -X) 2>/dev/null | grep "^Release" | awk '{print $3}'` if [ "x$XREL" != "x" ]; then if [ -f /etc/kconfig ]; then case "$XREL" in 4.0|4.1) echo "${MACHINE}-whatever-isc4"; exit 0 ;; esac else case "$XREL" in 3.2v4.2) echo "whatever-whatever-sco3"; exit 0 ;; 3.2v5.0*) echo "whatever-whatever-sco5"; exit 0 ;; 4.2MP) if [ "x$VERSION" = "x2.1.1" ]; then echo "${MACHINE}-whatever-unixware211"; exit 0 elif [ "x$VERSION" = "x2.1.2" ]; then echo "${MACHINE}-whatever-unixware212"; exit 0 else echo "${MACHINE}-whatever-unixware2"; exit 0 fi ;; 4.2) echo "whatever-whatever-unixware1"; exit 0 ;; 5) case "$VERSION" in 7*) echo "${MACHINE}-whatever-unixware7"; exit 0 ;; esac ;; esac fi fi case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in MiNT:*) echo "m68k-atari-mint"; exit 0 ;; A/UX:*) echo "m68k-apple-aux3"; exit 0 ;; AIX:*) MACH=`echo $MACHINE | sed -e 's;[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F];;'` echo "${MACH}-ibm-aix${VERSION}.${RELEASE}"; exit 0 ;; dgux:*) echo "${MACHINE}-dg-dgux"; exit 0 ;; HI-UX:*) echo "${MACHINE}-hi-hiux"; exit 0 ;; HP-UX:*) HPUXVER=`echo ${RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo "${MACHINE}-hp-hpux${HPUXVER}"; exit 0 ;; IRIX:*) if [ -f /usr/lib32/mips4/libm.so ]; then echo "${MACHINE}/32-sgi-irix${RELEASE}"; exit 0 else echo "${MACHINE}-sgi-irix${RELEASE}"; exit 0 fi ;; IRIX64:*) echo "${MACHINE}/64-sgi-irix${RELEASE}"; exit 0 ;; Linux:*) V='whatever' case "$MACHINE" in i?86) V='pc' ;; esac R='' case "$RELEASE" in [1-9].*) R=`echo $RELEASE | cut -c1` ;; esac echo "${MACHINE}-${V}-linux-gnu${R}"; exit 0 ;; LynxOS:*) echo "${MACHINE}-lynx-lynxos"; exit 0 ;; BSD/386|BSD/OS:3.*) echo "${MACHINE}-whatever-bsdi3"; exit 0 ;; BSD/386:*:*:*486*|BSD/OS:*:*:*:*486*) echo "i486-whatever-bsdi"; exit 0 ;; BSD/386:*|BSD/OS:*) echo "${MACHINE}-whatever-bsdi"; exit 0 ;; FreeBSD:*) VERS=`echo ${RELEASE} | sed -e 's/[-(].*//'` MACH=`/sbin/sysctl -n hw.model` ARCH='whatever' case ${MACH} in *386* ) MACH="i386" ;; *486* ) MACH="i486" ;; Pentium\ II*) MACH="i686" ;; Pentium* ) MACH="i586" ;; Alpha* ) MACH="alpha" ;; * ) MACH="$MACHINE" ;; esac case ${MACH} in i[0-9]86 ) ARCH="pc" ;; esac echo "${MACH}-${ARCH}-freebsd${VERS}"; exit 0 ;; NetBSD:*:*:*486*) echo "i486-whatever-netbsd${RELEASE}"; exit 0 ;; NetBSD:*) echo "${MACHINE}-whatever-netbsd${RELEASE}"; exit 0 ;; OpenBSD:*) echo "${MACHINE}-whatever-openbsd"; exit 0 ;; OSF1:*:*:*alpha*) VERS=`echo $RELEASE | sed -e 's;^V;;'` echo "${MACHINE}-dec-osf${VERS}"; exit 0 ;; QNX:*) if [ "$VERSION" -gt 422 ]; then echo "${MACHINE}-qssl-qnx32" else echo "${MACHINE}-qssl-qnx" fi exit 0 ;; Paragon*:*:*:*) echo "i860-intel-osf1"; exit 0 ;; SunOS:5.*) VERSION=`echo $RELEASE | sed -e 's;^5\.;;'` echo "${MACHINE}-sun-solaris2.${VERSION}"; exit 0 ;; SunOS:*) echo "${MACHINE}-sun-sunos4"; exit 0 ;; UNIX_System_V:4.*:*) echo "${MACHINE}-whatever-sysv4"; exit 0 ;; unix:3.0.9*:*:88k) echo "${MACHINE}-encore-sysv4"; exit 0 ;; *:4*:R4*:m88k) echo "${MACHINE}-whatever-sysv4"; exit 0 ;; UnixWare:5:99*:*) # Gemini, beta release of next rev of unixware echo "${MACHINE}-whatever-unixware212"; exit 0 ;; DYNIX/ptx:4*:*) echo "${MACHINE}-whatever-sysv4"; exit 0 ;; *:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*) echo "x86-ncr-sysv4"; exit 0 ;; ULTRIX:*) echo "${MACHINE}-unknown-ultrix"; exit 0 ;; SINIX-?:* | ReliantUNIX-?:*) echo "${MACHINE}-siemens-sysv4"; exit 0 ;; POSIX*BS2000) echo "${MACHINE}-siemens-sysv4"; exit 0 ;; machten:*) echo "${MACHINE}-tenon-${SYSTEM}"; exit 0; ;; ConvexOS:*:11.*:*) echo "${MACHINE}-v11-${SYSTEM}"; exit 0; ;; UNIX_SV:*:*:maxion) echo "${MACHINE}-ccur-sysv4"; exit 0; ;; PowerMAX_OS:*:*:Night_Hawk) MACHINE=`uname -p` echo "${MACHINE}-concurrent-powermax"; exit 0; ;; UNIX_SV:*) if [ -d /usr/nec ];then echo "mips-nec-sysv4"; exit 0; fi ;; NonStop-UX:4.[02]*:[BC]*:*) echo "${MACHINE}-tandem-sysv4"; exit 0; ;; Rhapsody:*:*:*) case "${MACHINE}" in "Power Macintosh") MACHINE=powerpc ;; esac echo "${MACHINE}-apple-rhapsody${RELEASE}"; exit 0 ;; "Mac OS":*:*:*) MACHINE=`uname -p` echo "${MACHINE}-apple-macos${RELEASE}"; exit 0 ;; "RISC iX":*) echo "arm-whatever-riscix"; exit 0; ;; *:4.0:2:*) echo "whatever-unisys-sysv4"; exit 0; ;; *:*:dcosx:NILE*) echo "pyramid-pyramid-svr4"; exit 0; ;; *:*:*:"DRS 6000") echo "drs6000-whatever-whatever"; exit 0; ;; AmigaOS:*:*:* ) echo "${MACHINE}-whatever-${SYSTEM}${RELEASE}"; exit 0 ;; esac # Now NeXT ISNEXT=`(hostinfo) 2>/dev/null` case "$ISNEXT" in *NeXT*) # Swiped from a friendly uname clone for NEXT/OPEN Step. NEXTOSVER="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" if [ "$NEXTOSVER" -gt 3.3 ]; then NEXTOS="openstep" else NEXTOS="nextstep" fi NEXTREL="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" NEXTARCH=`arch` echo "${NEXTARCH}-next-${NEXTOS}${NEXTREL}" ; exit 0 ;; esac # Fallback echo "${MACHINE}-whatever-${SYSTEM}/${RELEASE}/${VERSION}" ;; arx ) ## ## arx -- Extended archive command ## Copyright (c) 1999 Ralf S. Engelschall ## Originally written for shtool ## ar_prg="$opt_C" ar_cmd="$1"; shift archive="$1"; shift files="$*" # walk through the file list and expand archives members tmpdir=`echo $archive | sed -e 's;[^/]*$;.arx;'` nfiles='' if [ ".$files" != . ]; then for file in $files; do if [ ! -f $file ]; then echo "$msgprefix:Error: input file not found: $file" 1>&2 exit 1 fi case $file in *.a ) if [ ! -d $tmpdir ]; then if [ ".$opt_t" = .yes ]; then echo "mkdir $tmpdir" 1>&2 fi mkdir $tmpdir fi case $tmpdir in .arx ) from="../$file" ;; * ) dir=`echo $file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;'` base=`echo $file | sed -e 's;.*/\([^/]*\)$;\1;'` from="`cd $dir; pwd`/$base" ;; esac if [ ".$opt_t" = .yes ]; then echo "(cd $tmpdir && $ar_prg x $from)" 1>&2 fi (cd $tmpdir && eval $ar_prg x $from) if [ $? -ne 0 ]; then echo "$msgprefix:Error: member extraction failed for archive: $file" 1>&2 exit 1 fi for member in - `eval $ar_prg t $file`; do [ ".$member" = .- ] && continue nfiles="$nfiles $tmpdir/$member" done ;; * ) nfiles="$nfiles $file" ;; esac done fi # run the final archive command if [ ".$opt_t" = .yes ]; then echo "$ar_prg $ar_cmd $archive $nfiles" 1>&2 fi eval $ar_prg $ar_cmd $archive $nfiles if [ $? -ne 0 ]; then echo "$msgprefix:Error: archive command failed" 1>&2 exit $? fi # cleanup and die gracefully if [ -d $tmpdir ]; then if [ ".$opt_t" = .yes ]; then echo "rm -rf $tmpdir" 1>&2 fi rm -rf $tmpdir fi ;; slo ) ## ## slo -- Separate linker options by library class ## Copyright (c) 1998-1999 Ralf S. Engelschall ## Originally written for Apache ## DIFS="$IFS" # parse out -L and -l options from command line DIRS='' LIBS='' ARGV='' optprev='' for opt do # concatenate with previous option if exists if [ ".$optprev" != . ]; then opt="${optprev}${opt}"; optprev='' fi # remember options for arg when used stand-alone if [ ".$opt" = ".-L" -o ".$opt" = ".-l" ]; then optprev="$opt" continue; fi # split argument into option plus option argument arg="`echo $opt | cut -c3-`" opt="`echo $opt | cut -c1-2`" # store into containers case $opt in -L) DIRS="$DIRS:$arg" ;; -l) LIBS="$LIBS:$arg" ;; *) ARGV="$ARGV $opt" ;; esac done # set linker default directories DIRS_DEFAULT='/lib:/usr/lib' if [ ".$LD_LIBRARY_PATH" != . ]; then DIRS_DEFAULT="$DIRS_DEFAULT:$LD_LIBRARY_PATH" fi # sort options by class DIRS_OBJ='' LIBS_OBJ='' DIRS_PIC='' LIBS_PIC='' DIRS_DSO='' LIBS_DSO='' # for each library... OIFS="$IFS" IFS=':' for lib in $LIBS; do [ ".$lib" = . ] && continue found='no' found_indefdir='no' found_type='' found_dir='' # for each directory... OIFS2="$IFS" IFS=":$DIFS" for dir in ${DIRS} switch-to-defdirs ${DIRS_DEFAULT}; do [ ".$dir" = . ] && continue [ ".$dir" = .switch-to-defdirs ] && found_indefdir=yes [ ! -d $dir ] && continue # search the file OIFS3="$IFS" IFS="$DIFS" for file in '' `cd $dir && ls lib${lib}.* 2>/dev/null`; do [ ".$file" = . ] && continue case $file in *.so|*.so.[0-9]*|*.sl|*.sl.[0-9]* ) found=yes; found_type=DSO; break ;; *.lo|*.la ) found=yes; found_type=PIC ;; *.a ) if [ ".$found_type" = . ]; then found=yes found_type=OBJ fi ;; esac done IFS="$OIFS3" if [ ".$found" = .yes ]; then found_dir="$dir" break fi done IFS="$OIFS2" if [ ".$found" = .yes ]; then if [ ".$found_indefdir" != .yes ]; then eval "dirlist=\"\${DIRS_${found_type}}:\"" if [ ".`echo \"$dirlist\" | fgrep :$found_dir:`" = . ]; then eval "DIRS_${found_type}=\"\$DIRS_${found_type}:${found_dir}\"" fi eval "LIBS_${found_type}=\"\$LIBS_${found_type}:$lib\"" else eval "LIBS_${found_type}=\"\$LIBS_${found_type}:$lib\"" fi else LIBS_OBJ="$LIBS_OBJ:$lib" #dirlist="`echo $DIRS $DIRS_DEFAULT | sed -e 's/:/ /g'`" #echo "slo:Warning: library \"$lib\" not found in any of the following dirs:" 2>&1 #echo "slo:Warning: $dirlist" 1>&1 fi done IFS="$OIFS" # also pass-through unused dirs even if it's useless OIFS="$IFS" IFS=':' for dir in $DIRS; do dirlist="${DIRS_OBJ}:${DIRS_PIC}:${DIRS_DSO}:" if [ ".`echo \"$dirlist\" | fgrep :$dir:`" = . ]; then DIRS_OBJ="$DIRS_OBJ:$dir" fi done IFS="$OIFS" # reassemble the options but separated by type for type in OBJ PIC DSO; do OIFS="$IFS" IFS=':' eval "libs=\"\$LIBS_${type}\"" opts='' for lib in $libs; do [ ".$lib" = . ] && continue opts="$opts -l$lib" done eval "LIBS_${type}=\"$opts\"" eval "dirs=\"\$DIRS_${type}\"" opts='' for dir in $dirs; do [ ".$dir" = . ] && continue opts="$opts -L$dir" done eval "DIRS_${type}=\"$opts\"" IFS="$OIFS" done # give back results for var in ARGV DIRS_OBJ LIBS_OBJ DIRS_PIC LIBS_PIC DIRS_DSO LIBS_DSO; do eval "val=\"\$${var}\"" val="`echo $val | sed -e 's/^ *//'`" echo "SLO_${var}=\"${val}\"" done ;; a1449 149 ;; path ) ## ## path -- Deal with program paths ## Copyright (c) 1998-1999 Ralf S. Engelschall ## Originally written for Apache ## namelist="$*" # check whether the test command supports the -x option cat >$tmpfile </dev/null; then minusx="-x" else minusx="-r" fi rm -f $tmpfile # split path string paths="`echo $opt_p |\ sed -e 's/^:/.:/' \ -e 's/::/:.:/g' \ -e 's/:$/:./' \ -e 's/:/ /g'`" # SPECIAL REQUEST # translate forward to reverse path if [ ".$opt_r" = .yes ]; then if [ "x$namelist" = "x." ]; then rp='.' else rp='' for pe in `IFS="$IFS/"; echo $namelist`; do rp="../$rp" done fi echo $rp | sed -e 's:/$::' exit 0 fi # SPECIAL REQUEST # strip out directory or base name if [ ".$opt_d" = .yes ]; then echo "$namelist" |\ sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' exit 0 fi if [ ".$opt_b" = .yes ]; then echo "$namelist" |\ sed -e 's;.*/\([^/]*\)$;\1;' exit 0 fi # MAGIC SITUATION # Perl Interpreter (perl) if [ ".$opt_m" = .yes ] && [ ".$namelist" = .perl ]; then rm -f $tmpfile touch $tmpfile c=0 found=0 for dir in $paths; do dir=`echo $dir | sed -e 's;/*$;;'` for perl in perl5 perl miniperl; do if [ $minusx "$dir/$perl" ] && [ ! -d "$dir/$perl" ]; then perl="$dir/$perl" version=`$perl -v | grep version |\ sed -e 's/.* version //' -e 's/ built.*//' -e 's/ with.*//'` versionnum="`echo $version | sed -e 's/\.//g' -e 's/_//g'`" versionnum=`expr $versionnum - $c` echo "$versionnum $perl" >>$tmpfile found=1 fi done c=`expr $c + 1` done if [ $found = 1 ]; then perl="`cat $tmpfile | sort -u | tail -1 | cut '-d ' -f2`" rm -f $tmpfile echo "$perl" exit 0 fi exit 1 fi # MAGIC SITUATION # C pre-processor (cpp) if [ ".$opt_m" = .yes ] && [ ".$namelist" = .cpp ]; then cat >$tmpfile.c < Syntax Error EOT # 1. try the standard cc -E approach cpp="${CC-cc} -E" (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out my_error=`grep -v '^ *+' $tmpfile.out` if [ ".$my_error" != . ]; then # 2. try the cc -E approach and GCC's -traditional-ccp option cpp="${CC-cc} -E -traditional-cpp" (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out my_error=`grep -v '^ *+' $tmpfile.out` if [ ".$my_error" != . ]; then # 3. try a standalone cpp command in path and lib dirs for path in $paths /lib /usr/lib /usr/local/lib; do path=`echo $path | sed -e 's;/*$;;'` if [ $minusx "$path/cpp" ] && [ ! -d "$path/cpp" ]; then cpp="$path/cpp" break fi done if [ ".$cpp" != . ]; then (eval "$cpp $tmpfile.c >/dev/null") 2>$tmpfile.out my_error=`grep -v '^ *+' $tmpfile.out` if [ ".$my_error" != . ]; then # ok, we gave up... cpp='' fi fi fi fi rm -f $tmpfile.c $tmpfile.out if [ ".$cpp" != . ]; then echo "$cpp" exit 0 fi exit 1 fi # STANDARD SITUATION # iterate over names for name in $namelist; do # iterate over paths for path in $paths; do path=`echo $path | sed -e 's;/*$;;'` if [ $minusx "$path/$name" ] && [ ! -d "$path/$name" ]; then if [ ".$opt_s" != .yes ]; then echo "$path/$name" 2>&1 fi exit 0 fi done done exit 1 @ 1.38 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.5 (28-Jul-1999) d66 1 a66 1 echo "This is GNU shtool, version 1.4.5 (28-Jul-1999)" d103 1 a103 1 echo "GNU shtool 1.4.5 (28-Jul-1999)" d378 1 a378 1 if [ .$opt_h = .yes ]; then d1471 1 a1471 1 for spec in find:gfind,find tar:gtar,tar tardy:tardy; do @ 1.37 log @*** empty log message *** @ text @d1716 1 a1716 1 MACH=`sysctl -n hw.model` d1833 3 d2161 9 a2169 1 /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ || /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ { @ 1.37.2.1 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.6 (05-Sep-1999) d66 1 a66 1 echo "This is GNU shtool, version 1.4.6 (05-Sep-1999)" d103 1 a103 1 echo "GNU shtool 1.4.6 (05-Sep-1999)" d378 1 a378 1 if [ ".$opt_h" = .yes ]; then d1471 1 a1471 1 for spec in find:gfind,find tar:gtar,tar tardy:tardy,tarcust; do d1716 1 a1716 1 MACH=`/sbin/sysctl -n hw.model` a1832 3 AmigaOS:*:*:* ) echo "${MACHINE}-whatever-${SYSTEM}${RELEASE}"; exit 0 ;; d2158 1 a2158 9 /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ { if ($1 == class) { printf("V:#line %d \"%s\"\n", ln, src); printf("V:%s\n", $0); printf("J:%s\n", $0); next; } } /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ { @ 1.36 log @*** empty log message *** @ text @d1853 1 a1853 1 echo "${MACHINE}-whatever-${SYSTEM}|${RELEASE}|${VERSION}" @ 1.35 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.4 (17-Jul-1999) d66 1 a66 1 echo "This is shtool, version 1.4.4 (17-Jul-1999)" d103 1 a103 1 echo "GNU shtool 1.4.4 (17-Jul-1999)" @ 1.34 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.4-dev (16-Jul-1999) d51 1 d66 1 a66 1 echo "This is shtool, version 1.4.4-dev (16-Jul-1999)" d89 2 d103 1 a103 1 echo "GNU shtool 1.4.4-dev (16-Jul-1999)" d112 1 a112 1 echo|mdate|table|prop|move|install|mkdir|mkln|mkshadow|fixperm|guessos|arx|slo|scpp|version|path ) d198 8 d1441 170 @ 1.33 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.4 (16-Jul-1999) d65 1 a65 1 echo "This is shtool, version 1.4.4 (16-Jul-1999)" d100 1 a100 1 echo "GNU shtool 1.4.4 (16-Jul-1999)" @ 1.32 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.3 (11-Jul-1999) d65 1 a65 1 echo "This is shtool, version 1.4.3 (11-Jul-1999)" d100 1 a100 1 echo "GNU shtool 1.4.3 (11-Jul-1999)" @ 1.31 log @*** empty log message *** @ text @d107 12 a118 2 tool="$1" shift d1508 1 a1508 1 echo "${MACHINE}-sgi-irix64"; exit 0 @ 1.30 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.2 (09-Jul-1999) d65 1 a65 1 echo "This is shtool, version 1.4.2 (09-Jul-1999)" d100 1 a100 1 echo "GNU shtool 1.4.2 (09-Jul-1999)" d2434 1 a2434 1 if [ $minusx "$dir/$perl" ]; then @ 1.29 log @*** empty log message *** @ text @d1500 10 a1509 5 Linux:[2-9].*) echo "${MACHINE}-whatever-linux2"; exit 0 ;; Linux:1.*) echo "${MACHINE}-whatever-linux1"; exit 0 @ 1.28 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.1 (07-Jul-1999) d65 1 a65 1 echo "This is shtool, version 1.4.1 (07-Jul-1999)" d100 1 a100 1 echo "GNU shtool 1.4.1 (07-Jul-1999)" @ 1.27 log @*** empty log message *** @ text @d1898 1 a1898 1 ## Originally written for GNU Pth d2054 5 @ 1.26 log @*** empty log message *** @ text @d1898 1 a1898 1 ## Originally written for GNU pth @ 1.25 log @*** empty log message *** @ text @d67 1 d100 1 a100 1 echo "shtool 1.4.1 (07-Jul-1999)" d252 1 d257 1 d345 1 a345 1 echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d352 1 a352 1 echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d358 1 a358 1 echo "Usage: $toolcmd $str_usage" @ 1.24 log @*** empty log message *** @ text @d60 2 a61 2 echo "$0:ERROR: invalid command line" 1>&2 echo "$0:HINT: run \`$0 -h' for usage" 1>&2 d73 1 d102 4 d237 2 a238 2 echo "$0:ERROR: unknown command \`$tool'" 2>&1 echo "$0:HINT: run \`$0 -h' for usage" 2>&1 d341 2 a342 2 echo "$msgprefix:ERROR: unknown option: \`-$opt_OPT'" 1>&2 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d348 2 a349 2 echo "$msgprefix:ERROR: missing argument to option \`-$opt_PREV'" 1>&2 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d363 2 a364 2 echo "$msgprefix:ERROR: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d370 2 a371 2 echo "$msgprefix:ERROR: invalid number of arguments (at least $arg_NUMS expected)" 1>&2 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 @ 1.23 log @*** empty log message *** @ text @d9 2 a10 1 ## Version 1.4.1 (06-Jul-1999) d43 1 a43 1 ## table Pretty print a field-sperarated list as a table d65 1 a65 1 echo "This is shtool, version 1.4.1 (06-Jul-1999)" d98 1 a98 1 echo "shtool 1.4.1 (06-Jul-1999)" d741 1 a741 1 ## table -- Pretty print a field-sperarated list as a table d752 1 a752 1 * ) echo "$msgprefix:Error: Invalid seperator (one char allowed only)" 1>&2; exit 1 ;; d1857 1 a1857 1 # reassemble the options but seperated by type @ 1.22 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.4.0 (02-Jul-1999) d64 1 a64 1 echo "This is shtool, version 1.4.0 (02-Jul-1999)" d97 1 a97 1 echo "shtool 1.4.0 (02-Jul-1999)" d1889 1 a1889 1 ## Originally written for PTH d1895 22 d1919 1 a1919 1 echo "Parsing:" | awk '{ printf("%s", $0); }' 1>&2 d1923 1 a1923 1 echo $src | awk '{ printf(" %s", $0); }' 1>&2 d1925 1 a1925 1 awk <$src ' @ 1.21 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.3.2 (28-Jun-1999) d64 1 a64 1 echo "This is shtool, version 1.3.2 (28-Jun-1999)" d78 7 a84 7 echo ' move [-e] [-p] ' echo ' install [-c] [-C] [-s] [-m] [-o] [-g] [-e]' echo ' ' echo ' mkdir [-f] [-p] [-m] [ ...]' echo ' mkln [-v] [-f] [-s] [ ...] ' echo ' mkshadow [-v] [-d] [-a] ' echo ' fixperm [-v] [ ...]' d86 1 a86 1 echo ' arx [-v] [-C] [ ...]' d97 1 a97 1 echo "shtool 1.3.2 (28-Jun-1999)" d143 1 a143 1 str_usage="[-e] [-p] " d145 1 a145 1 opt_spec="ep" d149 1 a149 1 str_usage="[-c] [-C] [-s] [-m] [-o] [-g] [-e] " d151 1 a151 1 opt_spec="cCsm:o:g:e:" d155 1 a155 1 str_usage="[-f] [-p] [-m] [ ...]" d157 1 a157 1 opt_spec="fpm:" d161 1 a161 1 str_usage="[-v] [-f] [-s] [ ...] " d163 1 a163 1 opt_spec="vfs" d167 1 a167 1 str_usage="[-v] [-d] [-a] " d169 1 a169 1 opt_spec="vda" d173 1 a173 1 str_usage="[-v] [ ...]" d176 1 a176 1 opt_spec="v" d186 3 a188 3 str_usage="[-v] [-C] [ ...]" arg_spec="3+" opt_spec="vC:!" d292 1 a292 1 -[a-zA-Z0-9]*) d297 1 a297 1 -[a-zA-Z0-9]) d302 2 a303 2 *) break d322 1 a322 1 "." ) d326 1 a326 1 ":" ) d328 1 a328 1 eval "opt_${opt_OPT}=\"\$opt_ARG\"" d330 3 a332 3 "+" ) # option with argument (multiple occurances append) eval "opt_${opt_OPT}=\"\$opt_${opt_OPT} \$opt_ARG\"" d411 7 d441 1 a441 1 term_bold="$bold" d446 1 a446 1 for seq in me rmso reset; do # reset is last d449 1 a449 1 term_norm="$norm" d600 7 a606 4 echo dummy |\ awk '{ if (OPT_N == "yes") NL = ""; d608 3 a610 3 NL = "\n"; printf("%s%s", TEXT, NL); }' TEXT="$text" OPT_N="$opt_n" d623 1 a623 1 [dmy][dmy][dmy] ) d672 1 a672 1 # We finally have to deal with the problem that the "ls" output d675 1 a675 1 *:*) d684 1 a684 1 # for the following months of the last year the time notation d764 1 a764 1 { d779 1 a779 1 # format table cells and make sure table d781 1 d783 1 a783 1 ' d792 2 a793 2 awk "{ if (length(\$0) > $opt_s) { d795 2 a796 2 } else { print \$0; d799 1 d820 3 a822 3 @@p = ("|","/","-","\\"); $i = 0; while () { d824 1 a824 1 $i = 0 if ($i > 3); d832 1 a832 1 BEGIN { d834 5 a838 5 i = 1; } { printf("\r%s%c\b", prefix, p[i++]) > "/dev/stderr"; if (i > 4) { i = 1; } d843 1 a843 1 ' "prefix=$opt_p" d904 3 d910 4 a913 1 rm -f $onesrc || errstatus=$? d915 4 a918 1 mv -f $onesrc $onedst || errstatus=$? d921 4 a924 1 mv -f $onesrc $onedst || errstatus=$? d927 4 a930 1 mv -f $onesrc $onedst || errstatus=$? d951 3 a953 1 dst="$dst/`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'`" d962 6 d969 7 a975 2 dstdir=`echo $dst | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;'` dsttmp="$dstdir/#inst.$$#" d978 4 d983 4 a986 1 cp $src $dsttmp d988 4 a991 1 mv $src $dsttmp d994 2 a995 1 # Set options; do chmod last to preserve setuid bits d997 4 a1000 1 strip $dsttmp d1002 5 a1006 2 if [ ".$opt_o" != . ]; then chown $opt_o $dsttmp d1008 5 a1012 2 if [ ".$opt_g" != . ]; then chgrp $opt_g $dsttmp d1014 5 a1018 2 if [ ".$opt_m" != . ]; then chmod $opt_m $dsttmp d1022 1 d1034 3 d1039 4 a1042 2 rm -f $dst mv $dsttmp $dst d1047 1 a1047 1 ## d1055 1 a1055 1 for p in ${1+"$@@"}; do d1068 3 d1087 3 d1092 3 d1237 1 a1237 1 if [ ".$opt_v" = .yes ]; then a1250 4 # default IFS DIFS=' ' d1286 1 a1286 1 if [ ".$opt_d" = .yes ]; then a1297 1 OIFS="$IFS" IFS="$DIFS" d1299 1 a1299 1 if [ ".$opt_d" = .yes ]; then a1303 1 IFS="$OIFS" a1315 1 OIFS="$IFS" IFS="$DIFS" d1330 1 a1330 1 OIFS2="$IFS"; IFS='/' d1334 1 a1334 1 IFS="$OIFS2" d1343 1 a1343 1 if [ ".$opt_d" = .yes ]; then a1347 1 IFS="$OIFS" d1379 4 a1382 1 echo "-rwxrwxr-x $file" d1387 4 a1390 1 echo "-rw-rw-r-- $file" d1398 4 a1401 1 echo "drwxrwxr-x $file" d1407 1 a1407 1 echo "?????????? $file" d1434 2 a1435 2 3.2v4.2) echo "whatever-whatever-sco3"; exit 0 d1437 2 a1438 2 3.2v5.0*) echo "whatever-whatever-sco5"; exit 0 d1449 2 a1450 2 4.2) echo "whatever-whatever-unixware1"; exit 0 d1641 1 a1641 1 NEXTREL="`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`" d1658 1 a1658 1 ar_prg="$opt_C"; shift d1666 31 a1696 10 for file in $files; do if [ ! -f $file ]; then echo "$msgprefix:Error: input file not found: $file" 1>&2 exit 1 fi case $file in *.a ) if [ ! -d $tmpdir ]; then if [ ".$opt_v" = .yes ]; then echo "mkdir $tmpdir" d1698 11 a1708 30 mkdir $tmpdir fi case $tmpdir in .arx ) from="../$file" ;; * ) dir=`echo $file | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;'` base=`echo $file | sed -e 's;.*/\([^/]*\)$;\1;'` from="`cd $dir; pwd`/$base" ;; esac if [ ".$opt_v" = .yes ]; then echo "(cd $tmpdir && $ar_prg x $from)" fi (cd $tmpdir && eval $ar_prg x $from) if [ $? -ne 0 ]; then echo "$msgprefix:Error: member extraction failed for archive: $file" 1>&2 exit 1 fi for member in - `eval $ar_prg t $file`; do [ ".$member" = .- ] && continue nfiles="$nfiles $tmpdir/$member" done ;; * ) nfiles="$nfiles $file" ;; esac done d1711 2 a1712 2 if [ ".$opt_v" = .yes ]; then echo "$ar_prg $ar_cmd $archive $nfiles" d1722 2 a1723 2 if [ ".$opt_v" = .yes ]; then echo "rm -rf $tmpdir" d1736 1 a1736 2 DIFS=' ' d1742 1 a1742 2 optprev="" OIFS="$IFS" IFS="$DIFS" a1764 1 IFS="$OIFS" d1804 2 a1805 2 found_type=DSO; break d1809 1 a1809 1 found_type=PIC d1814 1 a1814 1 found_type=OBJ a1856 1 OIFS="$IFS" IFS="$DIFS" d1858 1 a1858 1 OIFS2="$IFS" IFS=':' d1874 1 a1874 1 IFS="$OIFS2" a1875 1 IFS="$OIFS" a1877 1 OIFS="$IFS" IFS="$DIFS" a1882 1 IFS="$OIFS" d1909 1 a1909 1 store = ""; d1914 1 a1914 1 /^#if.*/ { d1917 1 a1917 1 /^#if [a-zA-Z_][a-zA-Z0-9_]* *$/ { d1924 1 a1924 1 /^#endif.*/ { d1931 1 a1931 1 /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ || /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ { d1939 1 a1939 1 /^[a-zA-Z_][a-zA-Z0-9_]*/ { d1947 1 a1947 1 /^\{ *$/ { d1976 1 a1976 1 grep '^D:' $tmpfile | sed -e 's/^D://' >>$output d1998 1 a1998 1 echo "/* move intern function to hidden namespace */" >>$output d2128 1 d2133 1 d2240 1 a2240 1 # create the version file according the the selected language @ 1.20 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.3.1 (28-Jun-1999) d64 1 a64 1 echo "This is shtool, version 1.3.1 (28-Jun-1999)" d97 1 a97 1 echo "shtool 1.3.1 (28-Jun-1999)" @ 1.19 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.3.0 (25-Jun-1999) d64 1 a64 1 echo "This is shtool, version 1.3.0 (25-Jun-1999)" d83 1 a83 1 echo ' mkshadow [-v] ' d97 1 a97 1 echo "shtool 1.3.0 (25-Jun-1999)" d167 1 a167 1 str_usage="[-v] " d169 1 a169 1 opt_spec="v" d1183 1 a1183 1 echo "$msgprefix:Error: source directory not found" 1>&2 d1212 3 d1217 7 a1223 5 DIRS="`cd $src find . -type d -print |\ sed -e '/\/CVS/d' \ -e '/^\.$/d' \ -e 's:^\./::'`" d1226 3 d1234 10 a1243 10 FILES="`cd $src find . -depth -print |\ sed -e '/\.o$/d' \ -e '/\.a$/d' \ -e '/\.so$/d' \ -e '/\.cvsignore$/d' \ -e '/\/CVS/d' \ -e '/\/\.#/d' \ -e '/\.orig$/d' \ -e 's/^\.\///'`" d1247 1 a1247 1 if [ -d $file ]; then d1271 3 @ 1.18 log @*** empty log message *** @ text @d580 10 a589 10 sed -e "s;%B;${term_bold};g" \ -e "s;%b;${term_norm};g" \ -e "s;%u;${username};g" \ -e "s;%U;${userid};g" \ -e "s;%h;${hostname};g" \ -e "s;%d;${domainname};g" \ -e "s;%D;${time_day};g" \ -e "s;%M;${time_month};g" \ -e "s;%Y;${time_year};g" \ -e "s;%m;${time_monthname};g"` @ 1.17 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.3.0 (23-Jun-1999) d64 1 a64 1 echo "This is shtool, version 1.3.0 (23-Jun-1999)" d97 1 a97 1 echo "shtool 1.3.0 (23-Jun-1999)" d422 1 a422 1 term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); } /dev/null'` @ 1.16 log @*** empty log message *** @ text @d9 1 a9 1 ## Version 1.3.0 (18-Jun-1999) d64 1 a64 1 echo "This is shtool, version 1.3.0 (18-Jun-1999)" d97 1 a97 1 echo "shtool 1.3.0 (18-Jun-1999)" d418 2 a419 2 term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' ] [] [] d41 1 d60 1 a60 1 echo "$0:HINT: run \`$0 -h' for usage" 1>&2 d63 5 a67 2 if [ ".$1" = ".-h" ]; then echo "Usage: shtool [] []" d69 24 a92 21 echo ' echo [-n] [-e] [ ...]' echo ' table [-F] [-w] [-c] [-s]' echo ' ...' echo ' prop [-p]' echo ' move [-e] [-p] ' echo ' install [-c] [-C] [-s] [-m] [-o] [-g]' echo ' [-e] ' echo ' mkdir [-f] [-p] [-m] [ ...]' echo ' mkln [-v] [-f] [-s] [ ...] ' echo ' mkshadow [-v] ' echo ' fixperm [-v] [ ...]' echo ' guessos unknown' echo ' arx [-v] [-C] [' echo ' ...]' echo ' slo -- -Lxx -lxx [ -Lxx -lxx ... ]' echo ' scpp [-v] [-p] [-o] [-t] [-M]' echo ' [-D] [-C] [ ...]' echo ' version [-l] [-n] [-p] [-s]' echo ' [-i] [-d] ' echo ' path [-s] [-r] [-d] [-b] [-m] [-p] ' echo ' [ ...]' d96 2 a97 2 if [ ".$1" = ".-v" ]; then echo "shtool 1.3.0 (12-Jun-1999)" d117 8 d127 1 a127 1 str_usage="[-F] [-w] [-c] [-s] ..." d137 1 a137 1 str_usage="[-p]" d143 1 a143 1 str_usage="[-e] [-p] " d149 1 a149 1 str_usage="[-c] [-C] [-s] [-m] [-o] [-g] [-e] " d161 1 a161 1 str_usage="[-v] [-f] [-s] [ ...] " d167 1 a167 1 str_usage="[-v] " d173 1 a173 1 str_usage="[-v] [ ...]" d193 1 a193 1 str_usage="-- -Lxx -lxx [ -Lxx -lxx ... ]" d232 1 a232 1 echo "$0:HINT: run \`$0 -h' for usage" 2>&1 d254 1 d282 1 d287 1 d313 1 a313 1 if [ ".$opt_ARG" = . ]; then d336 1 a336 1 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d343 1 a343 1 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d358 1 a358 1 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d365 1 a365 1 echo "$msgprefix:HINT: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 d427 1 a427 1 paths="`echo $PATH | sed -e 's/:/ /g'`" d551 3 a553 3 time_day="`date '+%d' | awk '{ printf("%s", $1); }'`" time_month="`date '+%m' | awk '{ printf("%s", $1); }'`" time_year="`date '+%Y' 2>/dev/null | awk '{ printf("%s", $1); }'`" d555 1 a555 1 time_year="`date '+%y' | awk '{ printf("%s", $1); }'`" d598 125 d1239 1 a1239 1 from="$src/$file" d1293 1 a1293 1 echo " [EXE] $file" d1298 1 a1298 1 echo " [REG] $file" d1306 1 a1306 1 echo " [DIR] $file" d1312 1 a1312 1 echo " $file (??)" d1570 1 a1570 1 nfiles="" d2102 5 a2106 5 day="`date '+%d' | awk '{ printf("%s", $1); }'`" month="`date '+%m' | awk '{ printf("%s", $1); }'`" year="`date '+%Y' 2>/dev/null | awk '{ printf("%s", $1); }'`" if test ".$time_year" = .; then year="`date '+%y' | awk '{ printf("%s", $1); }'`" d2154 1 a2154 1 This is @@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@) d2183 1 a2183 1 const char @@PREFIX@@_Hello[] = "This is @@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; d2202 1 a2202 1 $@@PREFIX@@_Hello = "This is @@NAME@@ Version @@VERSION@@.@@REVISION@@@@BPTYPE@@@@BPLEVEL@@ (@@DAY@@-@@MONTH@@-@@YEAR@@)"; @ 1.12 log @*** empty log message *** @ text @d3 3 a5 3 ## shtool -- Portable Shell Tool ## Copyright (c) 1994-1999 Ralf S. Engelschall, All Rights Reserved. ## Version 1.2.9 (02-Jun-1999) d9 4 a12 2 ## LICENSE ## ======= d14 4 a17 38 ## ==================================================================== ## Copyright (c) 1994-1999 Ralf S. Engelschall. All rights reserved. ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions ## are met: ## ## 1. Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## ## 2. Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## ## 3. All advertising materials mentioning features or use of this ## software must display the following acknowledgment: ## "This product includes software developed by ## Ralf S. Engelschall ." ## ## 4. Redistributions of any form whatsoever must retain the following ## acknowledgment: ## "This product includes software developed by ## Ralf S. Engelschall ." ## ## THIS SOFTWARE IS PROVIDED BY RALF S. ENGELSCHALL ``AS IS'' AND ANY ## EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RALF S. ENGELSCHALL OR ## ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ## NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ## STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED ## OF THE POSSIBILITY OF SUCH DAMAGE. ## ==================================================================== d19 14 a32 2 ## This product includes software developed by the Apache Group ## for use in the Apache HTTP server project (http://www.apache.org/) d39 15 a53 15 ## echo Print command with optional construct expansion ## table Pretty print a field-sperarated list as a table ## prop Display a process indication though a running propeller ## move Move files with simultan substitution and optimized movement ## install Install a program, script or datafile ## mkdir Make a directory ## mkln Extended ln(1) command which calculates relative links ## mkshadow Create a shadow tree ## fixperm Fix file permission inside a source tree ## guessos Simple OS/Platform guesser ## arx Archive (ar) wrapper command. ## slo Separate Linker Options by library class ## scpp Sharing C Pre-Processor ## version Generate and maintain a version information file ## path Deal with $PATH variables d57 3 a59 1 echo "$0:Error: Invalid command line" 1>&2 d61 5 a65 7 if [ $# -eq 0 -o ".$1" = .-h ]; then echo "$0:Usage: shtool [] []" echo "" echo "Available commands are:" echo "" echo ' echo [-n] [-e] [ ...]' echo ' table [-F ] [-w ] [-c ] [-s ]' d67 1 a67 1 echo ' prop [-p ]' d69 8 a76 8 echo ' install [-c] [-m ] [-o ] [-g ]' echo ' [-s] [-S ] [-e ] ' echo ' mkdir [-f] [-p] [-m ] [ ...]' echo ' mkln [-v] [-f] [-s] [ ...] ' echo ' mkshadow ' echo ' fixperm [-s] [ ...]' echo ' guessos ' echo ' arx [-v] [' d78 247 a324 8 echo ' slo -Lxx -lxx [ -Lxx -lxx ... ]' echo ' scpp [-v] [-o ] [-t ] [-M ]' echo ' [-D ] [-C ] [ ...]' echo ' version [-l ] [-n ] [-p ] [-s' echo ' ] [-i ] [-d ] ' echo ' path [-s] [-r] [-d] [-b] [-m] [-p ] ' echo ' [ ...]' echo "" d327 4 a330 2 if [ ".$1" = .-v ]; then echo "shtool 1.2.9 (02-Jun-1999)" d333 39 a371 3 util=$1 shift case $util in d374 6 a379 12 # # command line parsing # newline="\n" expand=no while [ ".$1" != . ]; do case $1 in -n ) newline=""; shift; continue ;; -e ) expand=yes; shift; continue ;; * ) break ;; esac done a381 1 # a382 1 # a391 1 # a392 1 # d395 2 a396 1 if [ $expand = yes -a ".`echo $text | egrep '%[Bb]'`" != . ]; then d407 26 a432 6 if [ ".$term_bold" = . -o ".$term_norm" = . ]; then md="`tput md 2>/dev/null`" me="`tput me 2>/dev/null`" if [ ".$md" != . -a ".$me" != . ]; then term_bold="$xmd" term_norm="$xme" d434 1 a434 1 fi d436 1 a436 1 echo "$0:Warning: unable to determine terminal sequence for bold mode" 1>&2 a439 1 # a440 1 # d442 1 a442 1 if [ $expand = yes -a ".`echo $text | egrep '%[uU]'`" != . ]; then a459 1 # a460 1 # d462 1 a462 1 if [ $expand = yes -a ".`echo $text | egrep '%U'`" != . ]; then a483 1 # a484 1 # d486 1 a486 1 if [ $expand = yes -a ".`echo $text | egrep '%h'`" != . ]; then a503 1 # a504 1 # d506 1 a506 1 if [ $expand = yes -a ".`echo $text | egrep '%d'`" != . ]; then a525 1 # a526 1 # d531 1 a531 1 if [ $expand = yes -a ".`echo $text | egrep '%[DMYm]'`" != . ]; then d535 1 a535 1 if test ".$time_year" = .; then d538 2 a539 2 9[0-9]*) time_year="19$time_year" ;; *) time_year="20$time_year" ;; a557 1 # d559 1 a559 2 # if [ $expand = yes ]; then a572 1 # a573 1 # d575 3 a577 3 awk '{ printf("%s%s", TEXT, NEWLINE); }' \ TEXT="$text" NEWLINE="$newline" ;; d580 11 a590 17 # # command line parsing # width=15 cols=3 sep=':' strip=79 while [ ".$1" != . ]; do case $1 in -F ) sep="$2"; shift; shift; continue ;; -w ) width="$2"; shift; shift; continue ;; -c ) cols="$2"; shift; shift; continue ;; -s ) strip="$2"; shift; shift; continue ;; * ) break ;; esac done case x$sep in d592 1 a592 1 * ) echo "$0:Error: Invalid seperator (one char allowed only)" 1>&2; exit 1 ;; a593 4 if [ $cols -gt 4 ]; then echo "$0:Error: Invalid number of colums (1..4 allowed only)" 1>&2 exit 1 fi a594 1 # a595 1 # d597 1 a597 1 IFS="$sep" d608 1 a608 1 if (n < $cols) { d611 1 a611 1 if (n == $cols) { a619 1 # a621 1 # d625 5 a629 5 case $cols in 1 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${width}s\\n\", \$1); }'" ;; 2 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${width}s %-${width}s\\n\", \$1, \$2); }'" ;; 3 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${width}s %-${width}s %-${width}s\\n\", \$1, \$2, \$3); }'" ;; 4 ) eval "echo \"\${entry}\" | awk -F: '{ printf(\"%-${width}s %-${width}s %-${width}s %-${width}s\\n\", \$1, \$2, \$3, \$4); }'" ;; d633 2 a634 2 if (length(\$0) > $strip) { printf(\"%s\\n\", substr(\$0, 0, $strip-1)); d639 1 a639 1 ;; d642 5 a646 14 # # command line parsing # prefix="" while [ ".$1" != . ]; do case $1 in -p ) prefix="$2"; shift; shift; continue ;; * ) break ;; esac done if [ $# -gt 0 ]; then echo "$0:Error: too much arguments" 1>&2 exit 1 fi d666 1 a666 1 ' "$prefix" d682 1 a682 1 ' "prefix=$prefix" d684 1 a684 1 ;; d687 8 a694 18 # # command line parsing # expand=no preserve=no while [ ".$1" != . ]; do case $1 in -e ) expand=yes ; shift; continue ;; -p ) preserve=yes ; shift; continue ;; * ) break ;; esac done if [ $# -ne 2 ]; then echo "$0:Usage: move [-e] [-p] " 1>&2 exit 1 fi src=$1 dst=$2 a695 1 # a696 1 # d698 1 a698 1 echo "$0:Error: Invalid arguments" 1>&2 d702 1 a702 1 echo "$0:Error: Source and destination files are the same" 1>&2 d706 1 a706 1 if [ $expand = yes ]; then d709 1 a709 1 if [ $expand = yes ]; then d711 1 a711 1 echo "$0:Error: Source doesn't contain wildcard ('*'): $dst" 1>&2 d715 1 a715 1 echo "$0:Error: Destination doesn't contain substitution ('%N'): $dst" 1>&2 d719 1 a719 1 echo "$0:Error: Sources not found or no asterisk : $src" 1>&2 d724 1 a724 1 echo "$0:Error: Source not found: $src" 1>&2 a728 1 # d730 1 a730 2 # if [ $expand = yes ]; then a734 1 # a735 1 # d737 1 a737 1 if [ $expand = yes ]; then d743 7 a749 3 if [ -r $onedst ]; then if cmp -s $onesrc $onedst; then rm -f $onesrc || errstatus=$? d754 1 a754 1 mv -f $onesrc $onedst || errstatus=$? a759 2 # die gracefully d761 1 a761 1 ;; d764 8 a771 63 # # put in absolute paths if you don't have them in your path; # or use env. vars. # mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" # # parse argument line # instcmd="$mvprog" chmodcmd="" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" ext="" src="" dst="" while [ ".$1" != . ]; do case $1 in -c) instcmd="$cpprog" shift; continue ;; -m) chmodcmd="$chmodprog $2" shift; shift; continue ;; -o) chowncmd="$chownprog $2" shift; shift; continue ;; -g) chgrpcmd="$chgrpprog $2" shift; shift; continue ;; -s) stripcmd="$stripprog" shift; continue;; -S) stripcmd="$stripprog $2" shift; shift; continue ;; -e) ext="$2" shift; shift; continue ;; *) if [ ".$src" = . ]; then src=$1 else dst=$1 fi shift; continue ;; esac done if [ ".$src" = . ]; then echo "install.sh: no input file specified" exit 1 fi if [ ".$dst" = . ]; then echo "install.sh: no destination specified" exit 1 fi d773 1 a773 5 # # If destination is a directory, append the input filename; if # your system does not like double slashes in filenames, you may # need to add some logic # d775 1 a775 1 dst="$dst/`basename $src`" d778 5 a782 3 # Add a possible extension (such as ".exe") to src and dst src="$src$ext" dst="$dst$ext" d784 3 a786 3 # Make a temp file name in the proper directory. dstdir=`dirname $dst` dsttmp=$dstdir/#inst.$$# d788 6 a793 2 # Move or copy the file name to the temp name $instcmd $src $dsttmp d795 13 a807 5 # And set any options; do chmod last to preserve setuid bits if [ ".$chowncmd" != . ]; then $chowncmd $dsttmp; fi if [ ".$chgrpcmd" != . ]; then $chgrpcmd $dsttmp; fi if [ ".$stripcmd" != . ]; then $stripcmd $dsttmp; fi if [ ".$chmodcmd" != . ]; then $chmodcmd $dsttmp; fi d809 9 a817 3 # Now rename the file to the real destination. $rmcmd $dst $mvcmd $dsttmp $dst d819 8 a826 2 exit 0 ;; d829 6 a834 16 # command line parsing mode="" force=0 parent=0 while [ ".$1" != . ]; do case $1 in -f) force=1; shift; continue ;; -p) parent=1; shift; continue ;; -m) mode="$2"; shift; shift; continue ;; *) break ;; esac done if [ $# -eq 0 ]; then echo "$0:Usage: mkdir [-f] [-p] [-m ] [ ...]" 1>&2 exit 1 fi d840 2 a841 2 if [ $force = 0 ]; then echo "$0:Error: file exists: $p" 1>&2 d849 1 a849 1 if [ $parent = 0 ]; then d867 2 a868 2 if [ ".$mode" != . ]; then chmod $mode $pathcomp || errstatus=$? d876 1 a876 1 ;; d879 6 a884 18 # # command line parsing # verbose=no force=no symbolic=no while [ ".$1" != . ]; do case $1 in -v) verbose=yes; shift; continue ;; -f) force=yes; shift; continue ;; -s) symbolic=yes; shift; continue ;; *) break ;; esac done if [ $# -lt 2 ]; then echo "$0:Usage: mkln [-v] [-f] [-s] [ ...] " 1>&2 exit 1 fi d894 1 a894 1 echo "$0:Error: multiple sources not allowed when destination isn't a directory" 1>&2 a898 1 # a899 1 # d901 1 a901 1 if [ $force = yes ]; then d904 1 a904 1 if [ $symbolic = yes ]; then a907 1 # a908 1 # a909 5 # debugging if [ $verbose = yes ]; then echo "src=\"$src\" dst=\"$dst\":" fi a937 8 # debugging if [ $verbose = yes ]; then echo " STATE 1:" echo " srcisabs=$srcisabs srcdir=\"$srcdir\" srcbase=\"$srcbase\"" echo " dstisabs=$dstisabs dstdir=\"$dstdir\" dstbase=\"$dstbase\"" echo " oneisabs=$oneisabs" fi d941 1 a941 1 echo "$0:Error: destination directory not found: $dstdir" 1>&2 a952 7 # debugging if [ $verbose = yes ]; then echo " STATE 2:" echo " srcisabs=$srcisabs srcdir=\"$srcdir\" srcbase=\"$srcbase\"" echo " dstisabs=$dstisabs dstdir=\"$dstdir\" dstbase=\"$dstbase\"" echo " oneisabs=$oneisabs" fi a975 9 # debugging if [ $verbose = yes ]; then echo " STATE 3:" echo " prefix=$prefix" echo " srcisabs=$srcisabs srcdir=\"$srcdir\" srcbase=\"$srcbase\"" echo " dstisabs=$dstisabs dstdir=\"$dstdir\" dstbase=\"$dstbase\"" echo " oneisabs=$oneisabs" fi a995 9 # debugging if [ $verbose = yes ]; then echo " STATE 4:" echo " prefix=$prefix" echo " srcisabs=$srcisabs srcpre=\"$srcpre\" srcdir=\"$srcdir\" srcbase=\"$srcbase\"" echo " dstisabs=$dstisabs dstpre=\"$dstpre\" dstdir=\"$dstdir\" dstbase=\"$dstbase\"" echo " oneisabs=$oneisabs" fi a1008 9 # debugging if [ $verbose = yes ]; then echo " STATE 5:" echo " prefix=$prefix" echo " srcisabs=$srcisabs srcpre=\"$srcpre\" srcdir=\"$srcdir\" srcbase=\"$srcbase\"" echo " dstisabs=$dstisabs dstpre=\"$dstpre\" dstdir=\"$dstdir\" dstbase=\"$dstbase\"" echo " oneisabs=$oneisabs" fi d1010 1 a1010 2 if [ $verbose = yes ]; then echo " RESULT:" d1015 1 a1015 2 exit 0 ;; d1018 6 a1027 6 # command line check if [ $# -ne 2 ]; then echo "$0:Error: Invalid aruments" 1>&2 exit 1 fi d1029 2 a1030 2 src=`echo $1 | sed -e 's:/$::'` dst=`echo $2 | sed -e 's:/$::'` d1034 1 a1034 1 echo "$0:Error: source directory not found" 1>&2 d1112 3 a1114 1 echo " $to" d1118 1 a1118 1 ;; d1121 6 a1126 14 # # command line parsing # silent=no while [ ".$1" != . ]; do case $1 in -s ) silent=yes ; shift; continue ;; * ) break ;; esac done if [ $# -eq 0 ]; then echo "$0:Usage: fixperm [-s] [ ...]" 1>&2 exit 1 fi a1128 1 # a1129 10 # tmpdir="/tmp" if [ ".$TMPDIR" != . ]; then tmpdir="$TMPDIR" else if [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" fi fi tmpfile="$tmpdir/shtool.path.tmp.$$" a1142 1 # a1143 1 # d1148 2 a1149 2 if [ $silent = no ]; then echo " $file (FILE/EXEC)" d1153 2 a1154 2 if [ $silent = no ]; then echo " $file (FILE/REGULAR)" d1161 2 a1162 2 if [ $silent = no ]; then echo " $file (DIR)" d1167 2 a1168 2 if [ $silent = no ]; then echo " $file (UNKNOWN)" d1172 1 a1172 1 ;; d1175 7 d1390 1 a1390 5 # existance of the /usr/apollo directory is proof enough for Apollo if [ -d /usr/apollo ]; then echo "whatever-apollo-whatever" exit 0 fi d1392 1 a1392 1 ISNEXT=`hostinfo 2>/dev/null` d1408 1 d1410 1 a1410 1 ;; d1413 9 a1421 17 # # command line parsing # verbose=no while [ ".$1" != . ]; do case $1 in -v) verbose=yes; shift; continue ;; *) break ;; esac done if [ $# -le 4 ]; then echo "$0:Usage: arx [-v] [ ...]" 1>&2 exit 1 fi ar_prg=$1; shift ar_cmd=$1; shift archive=$1; shift a1423 1 # a1424 1 # d1429 1 a1429 1 echo "$0:Error: input file not found: $file" 1>&2 d1435 1 a1435 1 if [ $verbose = yes ]; then d1450 1 a1450 1 if [ $verbose = yes ]; then d1455 1 a1455 1 echo "$0:Error: member extraction failed for archive: $file" 1>&2 a1468 1 # d1470 1 a1470 2 # if [ $verbose = yes ]; then d1475 1 a1475 1 echo "$0:Error: archive command failed" 1>&2 a1478 1 # a1479 1 # d1481 1 a1481 1 if [ $verbose = yes ]; then d1486 1 a1486 2 exit 0 ;; d1489 6 a1497 1 # a1498 1 # a1527 1 # a1528 1 # a1533 1 # a1534 1 # a1607 1 # a1608 1 # a1617 1 # a1618 1 # a1640 1 # a1641 1 # d1649 1 a1649 1 ;; d1652 5 a1656 10 # # defaults # verbose=no output_file="lib.h" output_template="lib.h.in" output_mark="%%MARK%%" input_define="cpp" input_class="intern" srcs="" a1657 18 # # command line parsing # while [ ".$1" != . ]; do case $1 in -v) verbose=yes; shift; continue ;; -o) output_file=$2; shift; shift; continue ;; -t) output_template=$2; shift; shift; continue ;; -M) output_mark=$2; shift; shift; continue ;; -D) input_define=$2; shift; shift; continue ;; -C) input_class=$2; shift; shift; continue ;; *) break ;; esac done if [ $# -lt 1 ]; then echo "$0:Usage: scpp [-v] [-o ] [-t ] [-D ] [-C ] [ ...]" 1>&2 exit 1 fi d1659 1 a1659 1 output="${output_file}.n" a1660 23 # # determine temporary dir # tmpdir="/tmp" if [ ".$TMPDIR" != . ]; then tmpdir="$TMPDIR" else if [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" fi fi tmpfile="$tmpdir/shtool.scpp.tmp.$$" # # start generating output header # echo "/* $output_file -- autogenerated header file, DO NOT EDIT! */" >$output echo "#line 1 \"$output_template\"" >>$output sed <$output_template \ -e "1,/^${output_mark} *\$/p" -e 'd' |\ sed -e "/^${output_mark} *\$/d" >>$output # d1662 1 a1662 3 # cp /dev/null $tmpfile if [ $verbose = yes ]; then d1666 1 a1666 1 if [ $verbose = yes ]; then a1668 1 out_src=`echo "$src" | sed -e 's;\.[^.]*$;;' -e 's;$;.c;'` d1671 2 a1672 2 ln = 0; fln = 0; d1674 1 a1674 1 mode = ""; d1724 1 a1724 1 if (mode == "D") { d1726 1 a1726 2 } else if (mode == "F") { a1727 1 } d1729 1 a1729 1 ' "src=$src" "define=$input_define" "class=$input_class" >>$tmpfile d1731 1 a1731 1 if [ $verbose = yes ]; then d1735 8 a1742 6 # # devide, conquer, postprocess and generate output # grep '^D:' <$tmpfile |\ sed >>$output \ -e 's/^D://' d1744 1 d1747 5 a1751 3 echo "/* make sure the original sources are skipped */" >>$output echo "#define $input_define 0" >>$output echo "#define $input_class /**/" >>$output d1754 9 a1762 8 grep '^J:' <$tmpfile |\ sed >>$output \ -e 's/^J://' \ -e 's/ */ /g' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\];.*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\] =.*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\);.*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\) =.*$/#define \1 __\1/' d1765 5 a1769 6 grep '^I:' <$tmpfile |\ sed >>$output \ -e 's/^I://' \ -e 's/\([ (]\) */\1/g' \ -e 's/ *\([),]\)/\1/g' \ -e 's/^[^(]*[ *]\([a-zA-Z0-9_]*\)(.*$/#define \1 __\1/' d1771 1 d1774 11 a1784 10 grep '^V:' <$tmpfile |\ sed >>$output \ -e 's/^V://' \ -e 's/ */ /g' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\);.*$/\1;/' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\) =.*$/\1;/' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\);.*$/\1;/' \ -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\) =.*$/\1;/' \ -e 's/ ;/;/g' \ -e 's/^intern /extern /' d1787 12 a1798 16 grep '^F:' <$tmpfile |\ sed >>$output \ -e 's/^F://' \ -e 's/\([ (]\) */\1/g' \ -e 's/ *\([),]\)/\1/g' \ -e 's/^intern /extern /' # # end generating output header # n=`(echo ''; sed <$output_template -e "1,/^${output_mark} *\$/p" -e 'd') |\ wc -l | sed -e 's;^ *\([0-9]*\) *$;\1;'` echo "#line $n \"$output_template\"" >>$output sed <$output_template \ -e "/^${output_mark} *\$/,\$p" -e 'd' |\ sed -e "/^${output_mark} *\$/d" >>$output a1799 1 # d1801 11 a1811 3 # if [ -f $output_file ]; then if cmp -s $output_file $output; then d1814 1 a1814 1 cp $output $output_file d1817 1 a1817 1 cp $output $output_file d1820 2 a1821 6 # # cleanup # rm -f $tmpfile ;; d1824 13 a1836 38 LANGUAGE=txt NAME=unknown PREFIX=unknown FULLVERSION=unknown REPORT=NO INCREASE=P USAGE=NO FILE="" while [ ".$1" != . ]; do case $1 in -l) LANGUAGE=$2; shift; shift; continue ;; -n) NAME=$2; shift; shift; continue ;; -p) PREFIX=$2; shift; shift; continue ;; -s) FULLVERSION=$2; shift; shift; continue ;; -i) INCREASE=$2; shift; shift; continue ;; -d) REPORT=$2; shift; shift; continue ;; -h) USAGE=YES; shift; continue ;; *) break; esac done if [ $# -ne 1 ]; then USAGE=YES else FILE=$1 fi if [ ".$USAGE" = .YES ]; then echo "$0:Usage: version [options] file" echo "Options are:" echo "-l set language to one of 'txt', 'c' or 'perl'" echo "-n set program name" echo "-p set symbol prefix" echo "-s .[.pb]

set version string" echo "-i v|r|P|p|b|a|s increase version, revision or {alpha,batch,patch,snap} level" echo "-d short|long|libtool|hex display current version only" echo "-h print this page" exit 0 fi d1844 1 a1844 1 * ) echo "$0:Error: Unknown language type" 1>&2; exit 1 ;; d1964 2 a1965 2 9[0-9]*) year="19$year" ;; *) year="20$year" ;; d2000 1 a2005 10 tmpdir="/tmp" if [ ".$TMPDIR" != . ]; then tmpdir="$TMPDIR" else if [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" fi fi tmpfile="$tmpdir/shtool.version.tmp.$$" rm -f $tmpfile >/dev/null 2>&1 d2087 1 a2087 1 ;; d2090 6 a2095 25 # # parse argument line # silent=no reverse=no magic=no dirname=no basename=no pathlist="$PATH" namelist="" while [ ".$1" != . ]; do case $1 in -s ) silent=yes ; shift; continue ;; -r ) reverse=yes ; shift; continue ;; -d ) dirname=yes ; shift; continue ;; -b ) basename=yes ; shift; continue ;; -m ) magic=yes ; shift; continue ;; -p ) pathlist="$2"; shift; shift; continue ;; * ) break ;; esac done if [ $# -eq 0 ]; then echo "$0:Usage: path [-s] [-r] [-d] [-b] [-p ] [ ...]" 1>&2 exit 1 fi a2097 1 # a2098 10 # tmpdir="/tmp" if [ ".$TMPDIR" != . ]; then tmpdir="$TMPDIR" else if [ ".$TEMPDIR" != . ]; then tmpdir="$TEMPDIR" fi fi tmpfile="$tmpdir/shtool.path.tmp.$$" a2111 1 # d2113 1 a2113 2 # paths="`echo $pathlist |\ a2118 1 # d2121 1 a2121 2 # if [ $reverse = yes ]; then a2133 1 # d2136 1 a2136 2 # if [ $dirname = yes ]; then d2141 1 a2141 1 if [ $basename = yes ]; then a2146 1 # d2149 1 a2149 2 # if [ ".$magic" = .yes ] && [ ".$namelist" = .perl ]; then a2177 1 # d2180 1 a2180 2 # if [ ".$magic" = .yes ] && [ ".$namelist" = .cpp ]; then a2220 1 # a2222 1 # d2228 2 a2229 2 if [ "$silent" != "yes" ]; then echo "$path/$name" d2236 1 a2236 1 ;; a2237 5 * ) echo "$0:Error: Unknown command" 2>&1 echo "$0:Hint: Run '$0 -h' for usage" 2>&1 exit 1 ;; d2239 2 @ 1.11 log @*** empty log message *** @ text @d4 2 a5 2 ## Copyright (c) 1999 Ralf S. Engelschall, All Rights Reserved. ## Version 1.2.9 (01-Jun-1999) d56 1 a56 1 ## Usage: shtool [] [] d109 1 a109 1 echo "shtool 1.2.9 (01-Jun-1999)" d1948 4 a1951 1 FILESTR=`echo "$FILE" | tr 'abcdefghijklmnopqrstuvwxyz./%+-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_____'` @ 1.10 log @*** empty log message *** @ text @d5 1 a5 1 ## Version 1.2.8 (28-May-1999) d109 1 a109 1 echo "shtool 1.2.8 (28-May-1999)" @ 1.9 log @*** empty log message *** @ text @d151 2 a152 2 term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }'` term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }'` d155 2 a156 2 term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }'` term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }'` @ 1.8 log @*** empty log message *** @ text @d1731 4 a1734 2 -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\] *[=;].*$/#define \1 __\1/' \ -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\) *[=;].*$/#define \1 __\1/' d1750 4 a1753 1 -e 's/^\([^=;]*[ *]\([a-zA-Z0-9_]*\)\) *[=;].*$/\1;/' \ @ 1.7 log @*** empty log message *** @ text @d1638 1 a1638 1 echo "Expanding:" | awk '{ printf("%s", $0); }' 1>&2 @ 1.6 log @*** empty log message *** @ text @d5 1 a5 1 ## Version 1.2.7 (14-May-1999) d71 1 d99 2 d109 1 a109 1 echo "shtool 1.2.7 (14-May-1999)" d155 2 a156 2 term_bold=`echo dummy | awk '{ printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }'` term_norm=`echo dummy | awk '{ printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }'` d1576 212 @ 1.5 log @*** empty log message *** @ text @d148 2 a149 2 term_bold=`echo dummy | awk '{ printf("%c%c%c%c", 27, 91, 49, 109); }'` term_norm=`echo dummy | awk '{ printf("%c%c%c", 27, 91, 109); }'` d1129 1 a1129 1 MACH=`echo $MACHINE | sed -e 's;[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];;'` @ 1.4 log @*** empty log message *** @ text @d5 1 a5 1 ## Version 1.2.6 (13-May-1999) d106 1 a106 1 echo "shtool 1.2.6 (13-May-1999)" @ 1.3 log @*** empty log message *** @ text @d1129 2 a1130 1 echo "${MACHINE}-ibm-aix${VERSION}.${RELEASE}"; exit 0 d1144 1 a1144 1 echo "${MACHINE}-sgi-irix32"; exit 0 d1146 1 a1146 1 echo "${MACHINE}-sgi-irix"; exit 0 d1188 1 a1188 1 echo "i486-whatever-netbsd"; exit 0 d1191 1 a1191 1 echo "${MACHINE}-whatever-netbsd"; exit 0 d1197 2 a1198 1 echo "${MACHINE}-dec-osf"; exit 0 @ 1.2 log @*** empty log message *** @ text @d1160 3 d1210 2 a1211 7 SOLVER=`echo ${RELEASE}|awk -F. '{ if (NF < 3) printf "2%s0\n",$2 else printf "2%s%s\n",$2,$3 }'` echo "${MACHINE}-sun-solaris2.${SOLVER}"; exit 0 d1267 1 a1267 1 Power*) MACHINE=powerpc ;; d1270 4 @ 1.1 log @Initial revision @ text @d93 1 a93 1 echo ' fixperm [ ...]' d1007 45 a1051 1 for p in $*; do d1054 4 a1057 2 if [ -x $file ]; then echo " $file (FILE/EXEC)" d1060 3 a1062 1 echo " $file (FILE/REGULAR)" d1068 3 a1070 1 echo " $file (DIR)" d1074 3 a1076 1 echo " $file (UNKNOWN)" @ 1.1.1.1 log @Import of PTH into CVS @ text @@