dotfiles/stowers/shell-utils/dot-local/bin/_cdp_path
2024-09-01 18:11:58 +02:00

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 "$@"