20 lines
344 B
Bash
20 lines
344 B
Bash
|
|
_cdup() {
|
|
local dir=$1; shift
|
|
local targets=("$@")
|
|
for target in $targets; do
|
|
if [[ -e $dir/$target ]]; then
|
|
cd $dir
|
|
return 0
|
|
fi
|
|
done
|
|
if [[ $dir == "/" ]]; then return 1
|
|
else _cdup ${dir:h} ${targets[@]}
|
|
fi
|
|
}
|
|
|
|
cdup() {
|
|
if [[ ${#@} -gt 0 ]]; then _cdup ${PWD:h} "$@"
|
|
else _cdup ${PWD:h} .git .hg package.json build.sbt
|
|
fi
|
|
}
|