# only echo if interactive
function iecho {
    if [ "$PS1" ]; then # interactive
        echo $*;
    fi
}

# visible indication that homedir was found, etc.
iecho "sourcing .bashrc"

# HOME should already be set up to, e.g., c:/derek, but cygwin
# will change to /c/derek, so:
export COLONHOME=`cygpath -m ${HOME}`

export CYGSYSROOT=`cygpath -u $SYSTEMROOT`

# Once-only setup things:
# for each drive, follow example here with c:
#   mkdir /c
#   mount c: /c

if [ "$PS1" ]; then # interactive
    # set primary prompt to put host in window title
    PS1="\n\[\033]0;\h: \w\007\]\@ \w\n% "

    alias dclick='~/dclick.exe'
fi

if [[ -n $TERM ]] && [[ -n $SSH_CLIENT ]]; then
    # prefer cygwin emacs
    export PATH_EMACS="/usr/bin:/bin:/c/program files/emacs-21.3/bin"
else
    # presumably logged in via Windows, so prefer Windows Emacs
    export PATH_EMACS="/c/program files/emacs-21.3/bin:/usr/bin:/bin"
fi
export PATH="/usr/local/bin:${PATH_EMACS}:/usr/X11R6/bin:${CYGSYSROOT}/system32:${CYGSYSROOT}/system32/wbem:${CYGSYSROOT}"

# get around problem of not having a common ancestor running under ssh-agent
# by sharing one ssh-agent
export SSH_ENV_VARS="${HOME}/.ssh/env_vars"
function ssh-setup {
    if [ ${SSH_AGENT_PID} ]; then
        echo "export SSH_AGENT_PID=${SSH_AGENT_PID}" > ${SSH_ENV_VARS}
        echo "export SSH_AUTH_SOCK=${SSH_AUTH_SOCK}" >> ${SSH_ENV_VARS}
        # add a little security
        chmod go-rwx ${SSH_ENV_VARS}
        echo "source ~/.ssh/env_vars in any other shell to use this agent";
        # clean up on exit so no stale env vars file
        trap "rm ${SSH_ENV_VARS}" EXIT
        # can be re-tried, so ssh-add success independent of env var file
        ssh-add
    else
        echo "error: no ssh-agent ancestor is running"
    fi
}
if [ -f ${SSH_ENV_VARS} ]; then
    source ${SSH_ENV_VARS}
    iecho "ssh agent is ${SSH_AGENT_PID}"
fi

# examples of using netsh
function homedns {
    netsh interface ip set dns name="Local Area Connection" source=static addr=24.92.226.9 register=PRIMARY;
}

function workdns {
    netsh interface ip set dns name="Local Area Connection" source=dhcp
}   

###########################################################################
## VC++ Environment Variables
## Adapated from C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
##
VSBaseDirTemp=`cygpath -ms /c/Program\ Files/Microsoft\ Visual\ Studio`
VSBaseDirBASH=`cygpath -u $VSBaseDirTemp`

# Root of Visual Developer Studio Common files.
VSCommonDirBASH="${VSBaseDirBASH}/Common"
VSCommonDir=`cygpath -d ${VSCommonDirBASH}`

# Root of Visual Developer Studio installed files.
MSDevDirBASH="${VSCommonDirBASH}/MSDev98"
MSDevDir=`cygpath -d ${MSDevDirBASH}`

# Root of Visual C++ installed files.
MSVCDirBASH="${VSBaseDirBASH}/VC98"
MSVCDir=`cygpath -d ${MSVCDirBASH}`

# VcOsDir is used to help create either a Windows 95 or Windows NT specific path.
if [ "$OS" = "Windows_NT" ]; then export VcOsDir=WINNT; else export VcOsDir=WIN95; fi

# Set environment for using Microsoft Visual C++ tools.
if [ "$OS" = "Windows_NT" ]; then PATH="$MSDevDirBASH/BIN:$MSVCDirBASH/BIN:$VSCommonDirBASH/TOOLS/$VcOsDir:$VSCommonDirBASH/TOOLS:$PATH"; fi
if [ "$OS" = "" ]; then PATH="$PATH:$MSDevDirBASH/BIN:$MSVCDirBASH/BIN:$VSCommonDirBASH/TOOLS/$VcOsDir:$VSCommonDirBASH/TOOLS:$windir/SYSTEM"; fi
export INCLUDE="$MSVCDir\\ATL\\INCLUDE;$MSVCDir\\INCLUDE;$MSVCDir\\MFC\\INCLUDE;$INCLUDE"
export LIB="$MSVCDir\\LIB;$MSVCDir\\MFC\\LIB;$LIB"

unset VSBaseDirTemp
unset VSBaseDirBASH
unset VSCommonDirBASH
unset VSCommonDir
unset MSDevDirBASH
unset MSDevDir
unset MSVCDirBASH
unset MSVCDir
#
###########################################################################
