diff --git a/init-repo-tools b/init-repo-tools index 062a345..95af37c 100755 --- a/init-repo-tools +++ b/init-repo-tools @@ -10,6 +10,7 @@ # cat <<-EOS repo () { - cd \$($(dirname $(realpath ${BASH_SOURCE[0]}))/repo \$@) + r=\$($(dirname $(realpath ${BASH_SOURCE[0]}))/repo \$@) + [[ "\$r" != "." ]] && [[ "\$r" != "\$(pwd)/" ]] && cd \$r } EOS diff --git a/repo b/repo index 62ae720..47c293e 100755 --- a/repo +++ b/repo @@ -27,9 +27,14 @@ repos=$(find "${REPOSITORY_BASE}" -maxdepth 5 -name '.git' | sed "s|${REPOSITORY # Default to searching within github.com, because that's by far the most common # place for repos to be. # selected=$(echo "${repos}" | gum filter --header="Pick a repo" --prompt="Repo: " --height=20 --value "github.com/${1}") -selected="$(echo "${repos}" | fzf -1 -0 -q "${REPO_DEFAULT_SEARCH_PREFIX}${1}" --prompt="Repo: ")" +selected="$(echo "${repos}" | fzf -1 -0 -q "${1:-${REPO_DEFAULT_SEARCH_PREFIX}}" --prompt="Repo: ")" -echo "${REPOSITORY_BASE}/${selected}" +# Do nothing if no repo was selected +if [ -n "${selected}" ]; then + echo "${REPOSITORY_BASE}/${selected}" +else + echo '.' +fi # TODO: It could be super nice to bias in favour of more frequently selected options. # For the last 500 uses (or so):