#!/usr/local/bin/zsh _autogopath_find_gopath_marker() { SEARCH_PATH=$1 if [ -e "${SEARCH_PATH}/.gopath" ]; then AUTOGOPATH_PATH=${SEARCH_PATH} return fi if ( test "/" = "${SEARCH_PATH}" ); then AUTOGOPATH_PATH="" return fi SEARCH_PATH=$(dirname ${SEARCH_PATH}) _autogopath_find_gopath_marker ${SEARCH_PATH} } _autogopath_chpwd_handler() { _autogopath_find_gopath_marker $(pwd) if [ -z "$AUTOGOPATH_PATH" ]; then export GOPATH=$AUTOGOPATH_DEFAULT else export GOPATH=$AUTOGOPATH_PATH fi } autoload -U add-zsh-hook add-zsh-hook chpwd _autogopath_chpwd_handler _autogopath_chpwd_handler