#!/usr/bin/ksh93
################################################################
#### Program: tee_k93
####
#### Description: Emulation of the Unix "tee" command
####
#### Author: Dana French (dfrench@mtxia.com)
#### Copyright 2004
####
#### Date: 07/28/2004
####
################################################################
function tee_k93 {
typeset TRUE="0"
typeset FALSE="1"
typeset VERBOSE="${FALSE}"
typeset VERYVERB="${FALSE}"
typeset APPEND="${FALSE}"
typeset FNAME
while getopts ":avV" OPTION
do
case "${OPTION}" in
'a') APPEND="${TRUE}";;
'v') VERBOSE="${TRUE}";;
'V') VERYVERB="${TRUE}";;
'?') print "Syntax: tee_k93 [FILE]..." && exit 1 ;;
esac
done
shift $(( ${OPTIND} - 1 ))
FNAME="${1}"
if [[ "_${FNAME}" = "_" ]]
then
print -u 2 "ERROR: output file name not specified"
return 1
fi
if (( APPEND == TRUE ))
then
if ! exec 3>>"${FNAME}"
then
print -u 2 "ERROR: Unable to append to file ${FNAME}"
return 2
fi
else
if ! exec 3>"${FNAME}"
then
print -u 2 "ERROR: Unable to write to file ${FNAME}"
return 3
fi
fi
while IFS="" read -r -- LINE
do
print -u 3 -r -- "${LINE}"
print -r -- "${LINE}"
done
exec 3>&-
return "${TRUE}"
}
################################################################
tee_k93 "${@}"