29 lines
670 B
Bash
Executable file
29 lines
670 B
Bash
Executable file
#!/bin/bash
|
|
|
|
function _get_projects() {
|
|
( cd -- "${WORKSPACE_DIR}" && find . -mindepth 3 -maxdepth 3 -type d | sed 's|^\./||' )
|
|
}
|
|
|
|
function _cdp() {
|
|
if command -v fzf &>/dev/null; then
|
|
echo "${WORKSPACE_DIR}/$(_get_projects | fzf --query "$*")"
|
|
return
|
|
fi
|
|
|
|
readarray -t projects <<< "$(_get_projects)"
|
|
local filtered_projects
|
|
filtered_projects=()
|
|
|
|
for project in "${projects[@]}"; do
|
|
if [[ "${project}" == "$1"* ]]; then
|
|
filtered_projects+=("${project}")
|
|
fi
|
|
done
|
|
|
|
select project in "${filtered_projects[@]}"; do
|
|
echo "${WORKSPACE_DIR}/${project}"
|
|
break
|
|
done
|
|
}
|
|
|
|
_cdp "$@"
|