view .bash_overrides @ 163:eb0049718001

hopefully work with files with spaces and what not
author Jeff Hammel <jhammel@mozilla.com>
date Thu, 18 Aug 2011 11:41:32 -0700
parents f3ab51c79813
children f890a12d8cf5
line wrap: on
line source

#!/bin/bash

function unlink {	
    command unlink `echo $@ | sed 's/\/$//g'`
}

function find {

    if (( ! $# ))
    then
	return
    fi
    
    if [ -d $1 ]
    then
	DIR="$1"
	shift
    else
	DIR="$PWD"
    fi
    
    if [ "$#" == "1" ]
    then
	`which find` -L "$PWD" -not -path '*.svn*' -iname "$1"
	return 0
    fi

    COMMAND="`which find` -L \"$DIR\" -not -path '*.svn*' $@"
#echo $COMMAND # for debugging
    `which find` -L "$DIR" -not -path '*.svn*' "$@"
}

cd() {
    
    ENV=""
    # find if you're in a
    if [ -n "${WORKING_ENV}" ]
    then
	ENV="${WORKING_ENV}"
    fi
    if [ -n "${VIRTUAL_ENV}" ]
    then
	ENV="${VIRTUAL_ENV}"
    fi


    if [ -d "$@" ]
    then		
	command cd "$@"
    else
	if [ -e "$@" ]
	then
	    command cd `dirname "$@"`
	else
	    if [[ "$@" == "^"  &&  -n "${ENV}" ]]
	    then
		command cd "${ENV}"
	    else
		command cd "$@"
	    fi
	fi
    fi

    # handle ENVs
    if [ -e "bin/activate" ]
    then
	if [ -n "${ENV}" ]
        then
	    if [ "${ENV}" != "${PWD}" ]
	    then
		if [[ -n "`type -t deactivate`" ]]
		then
		    deactivate
		fi
	    else
		return 
	    fi
	fi
	source "bin/activate"
    fi

    ENV=""
    # find if you're in a
    if [ -n "${WORKING_ENV}" ]
    then
	ENV="${WORKING_ENV}"
    fi
    if [ -n "${VIRTUAL_ENV}" ]
    then
	ENV="${VIRTUAL_ENV}"
    fi

    if [ -n "${ENV}" ]
    then
	FULLPWD=$(python -c 'import os; print os.getcwd()')
	if (( ! `expr match "${FULLPWD}" "${ENV}"` ))
	then 
	    if [[ -n "`type -t deactivate`" ]]
	    then
		deactivate
	    fi
	fi
    fi
    unset ENV
}

emacsclient() {
    command emacsclient $@ > /dev/null &
}