【发布时间】:2014-09-22 18:34:03
【问题描述】:
我正在用 python 编写一个命令行工具并使用 pip 来分发它。我编写了一些脚本(一个用于 bash,一个用于 zsh)以允许该工具完成制表符。当有人安装 pip 时,有没有办法让 pip 安装这些脚本?
例如: 我有一个completion.bash 文件。当有人这样做时
pip 安装我的包
它还将获取 bash 文件。
我很确定我可以通过将脚本放在 setup.py 脚本的 data_files 部分中来为 linux 和 bash 执行此操作。
data_file=[
('/etc/bash_completion.d', ['bin/completion.bash'])
],
但我怎样才能做到这一点,使其独立于平台和外壳?我需要它在 bash 和 zsh 中为 mac/linux 工作。如果可能的话,甚至支持windows。
这可能吗?如果有,怎么做?
如果重要的话,这是我的 bash 脚本:
_foo_complete() {
COMPREPLY=()
local words=( "${COMP_WORDS[@]}" )
local word="${COMP_WORDS[COMP_CWORD]}"
words=("${words[@]:1}")
local completions="$(foo completer --cmplt=\""${words[*]}"\")"
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
}
complete -F _foo_complete foo
我目前正在通过运行 source completion.bash 来安装它
【问题讨论】:
标签: python pip bash-completion