From c0301c7cee22dc76e589a761f6bd03f5684b0dcc Mon Sep 17 00:00:00 2001 From: William Ting Date: Tue, 31 Dec 2013 08:39:14 -0600 Subject: [PATCH] minor shell script cleanup --- bin/autojump.bash | 28 +++++++++++++++++++--------- bin/autojump.zsh | 23 +++++++++++++++-------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/bin/autojump.bash b/bin/autojump.bash index cd5d792..4e39014 100644 --- a/bin/autojump.bash +++ b/bin/autojump.bash @@ -47,6 +47,7 @@ case $PROMPT_COMMAND in ;; esac +# default autojump command j() { if [[ ${@} =~ ^-{1,2}.* ]]; then autojump ${@} @@ -64,37 +65,46 @@ j() { fi } +# jump to child directory (subdirectory of current path) jc() { if [[ ${@} == -* ]]; then autojump ${@} else - j $(pwd)/ ${@} + j $(pwd) ${@} fi } +# open autojump results in file browser jo() { - if [ -z $(autojump $@) ]; then - echo "autojump: directory '${@}' not found" - echo "Try \`autojump --help\` for more information." - false - else + if [[ ${@} == -* ]]; then + autojump ${@} + return + fi + + new_path="$(autojump ${@})" + if [ -d "${new_path}" ]; then case ${OSTYPE} in linux-gnu) - xdg-open "$(autojump $@)" + xdg-open "${new_path}" ;; darwin*) - open "$(autojump $@)" + open "${new_path}" ;; cygwin) - cygstart "" $(cygpath -w -a $(pwd)) + cygstart "" $(cygpath -w -a ${new_path}) ;; *) echo "Unknown operating system." 1>&2 ;; esac + else + echo "autojump: directory '${@}' not found" + echo "Try \`autojump --help\` for more information." + false fi } +# open autojump results (child directory) in file browser jco() { if [[ ${@} == -* ]]; then autojump ${@} diff --git a/bin/autojump.zsh b/bin/autojump.zsh index e4490fd..c12b24e 100644 --- a/bin/autojump.zsh +++ b/bin/autojump.zsh @@ -40,7 +40,7 @@ jc() { if [[ ${@} == -* ]]; then autojump ${@} else - j $(pwd)/ ${@} + j $(pwd) ${@} fi } @@ -48,21 +48,29 @@ jc() { jo() { if [[ ${@} == -* ]]; then autojump ${@} - else + return + fi + + local new_path="$(autojump ${@})" + if [ -d "${new_path}" ]; then case ${OSTYPE} in linux-gnu) - xdg-open "$(autojump $@)" + xdg-open "${new_path}" ;; darwin*) - open "$(autojump $@)" + open "${new_path}" ;; cygwin) - cygstart "" $(cygpath -w -a $(pwd)) + cygstart "" $(cygpath -w -a ${new_path}) ;; *) echo "Unknown operating system." 1>&2 ;; esac + else + echo "autojump: directory '${@}' not found" + echo "Try \`autojump --help\` for more information." + false fi } @@ -70,8 +78,7 @@ jo() { jco() { if [[ ${@} == -* ]]; then autojump ${@} - return + else + jo $(pwd) ${@} fi - - jo $(pwd)/ ${@} }