1 Star 0 Fork 0

Ivan Ryuu/modman

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
bash_completion 1.68 KB
一键复制 编辑 原始数据 按行查看 历史
Colin Mollenhour 提交于 2014-05-22 10:56 . Add --no-shell option
#!/bin/bash
# Installation:
# Copy to /etc/bash_completion.d/modman
# or
# Append to ~/.bash_completion
#
_modman()
{
local cur prev opts mm module
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ $COMP_CWORD -eq 1 ]; then prev='modman'; fi
mm=$(_modman_get_mm)
module=$(_modman_get_module)
case "${prev}" in
modman)
opts="init --help --version --tutorial"
if [ -n "$mm" ]; then
opts="${opts} list status incoming update-all deploy-all repair clean"
opts="${opts} checkout clone hgclone link deploy update remove"
fi
;;
init | --help | --version | --tutorial | list | status | incoming | repair | clean | --force | --copy)
opts=""
;;
update-all | deploy-all | checkout | clone | hgclone | link)
opts="--force --no-clean --no-local"
;;
deploy | update)
opts="$(modman list) --force --no-clean --no-local --no-shell"
;;
remove)
opts=$(modman list)
;;
*)
[ -d "$mm/${prev}" ] && opts="--force --no-clean --no-local --no-shell"
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
_modman_get_mm()
{
local root _pwd
_pwd=$(pwd)
root=$(pwd -P)
while ! [ -d $root/.modman ]; do
if [ "$root" = "/" ]; then
cd $_pwd && return 1
fi
cd ..
root=`pwd`
done
cd $_pwd
echo "$root/.modman"
}
_modman_get_module()
{
local root module modpath mm _pwd
_pwd=`pwd`
mm=$(_modman_get_mm)
[ -z "$mm" ] && return 1
root="$(dirname $mm)"
module=''
while [ "$root" != "$(pwd)" ]; do
modpath=`pwd`
if [ "$mm" = "$(dirname $modpath)" ]; then
module=$(basename $modpath)
break
fi
cd ..
done
cd $_pwd
[ -z "$module" ] && return 1
echo $module
}
complete -F _modman modman
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ivan-ryuu/modman.git
git@gitee.com:ivan-ryuu/modman.git
ivan-ryuu
modman
modman
master

搜索帮助