#!/bin/sh # # Set some variables to make DOS-portable shell scripts possible. # This script must be sourced by a Bourne-like shell to be effective: # # . portshell # # Afterwards, you can use these environment variables: # # UNIX_OR_WIN: "windows" or "unix". # UWIN, ISCYGWIN: Only one of these can be true (else, false). # UNIXY: true if it's quite unix-like (else, false). # DEVNULL,DEVTTY: Use these instead of /dev/tty etc., for portability. # EGREP_SILENT: The option to use to make egrep silent. # TMP: What to use for /tmp. # # Author: Luke Kendall # # Copyright (C) Luke Kendall, 2001. Use however you like. # PORTSHELL_VARS="DATE_FMT DEVTTY DEVNULL EGREP_SILENT ISCYGWIN \ UNIX_OR_WIN UNIXY UWIN TMP" if [ "x$PORTSHELL" != "xstuff" ] then UNIXY=true # Well, you're running this shell script, aren't you? UWIN=false ISCYGWIN=false # This used to be -f and -s for U/Win, but not needed in v 2.9 and later. # DATE_FMT="+" EGREP_SILENT="q" _uname=`uname` case "$_uname" in UWIN*) UWIN=true DATE_FMT="-f " # For old U/Win back compatibility. EGREP_SILENT="s" ;; CYGWIN*) ISCYGWIN=true UNIXY=true ;; *) # If you discover new shells that can't handle dev tty etc. as # below, then tailor it here. ;; esac if $UNIXY then DEVTTY=/dev/tty DEVNULL=/dev/null TMP=${TMP:-/tmp} if [ -s c:/boot.ini ] then UNIX_OR_WIN="windows" else UNIX_OR_WIN="unix" fi else DEVTTY=con DEVNULL=nul TMP=${TMP:-$TEMP} UNIX_OR_WIN="windows" if [ "x$TMP" = "x" ] then if [ -d c:/tmp ] then TMP=c:/tmp elif [ -d c:/temp ] then TMP=c:/temp else echo "Couldn't work out what to set TMP to" >&2 fi fi fi export $PORTSHELL_VARS unset _uname PORTSHELL="stuff" export PORTSHELL fi if [ "x$1" = "x-v" ] then shift for v in $PORTSHELL_VARS do echo "$v=`eval echo '$'$v`" done fi unset PORTSHELL_VARS if [ $# != 0 ] then echo "usage: . portshell [-v]" >&2 fi