capn在当前工作目录更改时提供钩子。
项目描述
capn
====
capn是一个当当前工作目录更改时提供钩子的包。
### 安装
$ sudo pip install capn
$ touch ~/.capnhooks
### 配置
capn使用简单的YAML文件来指定路径及其钩子。作为一个快速示例,考虑以下内容
设置
default_type: path
external_hooks
- ~/.otherhooks
hooks
- path: /home
type: tree
进入
- echo entering /home
退出
- echo exiting /home
- echo /home waves goodbye
- path: ~/
进入
- echo entering ~/
退出
- echo exiting ~/
上面的内容为两个列出的目录建立了进入和退出钩子。当您更改目录时,应该看到指示每个钩子执行的输出。您会注意到*/home*路径有一个**type**键,其值为**tree**。有两种类型的钩子;**path**,这是默认值,仅针对该绝对路径触发。**tree**钩子将在您进入或离开指定路径下的树时触发。在树的子路径之间移动不会触发钩子。例如,从*/ -> /home*会触发*进入*钩子。从*/home -> ~/*不会触发退出钩子。
通常,钩子中指定的命令将是shell脚本的名称,而不是单个shell命令。
配置的第一部分目前有两个可用的设置
* **default_type**:**path**或**tree**。如果未指定设置,则将使用**path**。
* **external_hooks**:其他YAML文件的路径列表,这些文件包含额外的钩子。此类文件应类似于上述示例配置中的**'hooks'**部分。
### 使用
安装capn后,您需要执行
$ source capn
如果您不再希望激活钩子
$ unhook
### API
add_external_hook(filename, path, hooktype=DEFAULT_TYPE,
enter=[], exit=[])
目前capn拥有一个最小的API,只有一个用于管理程序生成的外部钩子文件的函数。下面是示例:
>>>from capn.config import add_external_hook
>>>filename = "~/.otherhooks"
>>>path = ~/projects/foo/bar
>>>hooktype = 'tree'
>>>enter = ['source ~/projects/foo/bar/bin/activate']
>>>exit = ['deactivate']
>>>add_external_hook(filename, path, hooktype=hooktype,
... enter=enter, exit=exit)
>>>
上述代码将向文件 *"~/.otherhooks"* 添加一个钩子,用于在shell位于项目目录内时自动激活/停用python-virtualenv。然后您需要将文件名添加到 *"~/.capnhooks"* 配置文件中的 **external_hooks** 列表。
====
capn是一个当当前工作目录更改时提供钩子的包。
### 安装
$ sudo pip install capn
$ touch ~/.capnhooks
### 配置
capn使用简单的YAML文件来指定路径及其钩子。作为一个快速示例,考虑以下内容
设置
default_type: path
external_hooks
- ~/.otherhooks
hooks
- path: /home
type: tree
进入
- echo entering /home
退出
- echo exiting /home
- echo /home waves goodbye
- path: ~/
进入
- echo entering ~/
退出
- echo exiting ~/
上面的内容为两个列出的目录建立了进入和退出钩子。当您更改目录时,应该看到指示每个钩子执行的输出。您会注意到*/home*路径有一个**type**键,其值为**tree**。有两种类型的钩子;**path**,这是默认值,仅针对该绝对路径触发。**tree**钩子将在您进入或离开指定路径下的树时触发。在树的子路径之间移动不会触发钩子。例如,从*/ -> /home*会触发*进入*钩子。从*/home -> ~/*不会触发退出钩子。
通常,钩子中指定的命令将是shell脚本的名称,而不是单个shell命令。
配置的第一部分目前有两个可用的设置
* **default_type**:**path**或**tree**。如果未指定设置,则将使用**path**。
* **external_hooks**:其他YAML文件的路径列表,这些文件包含额外的钩子。此类文件应类似于上述示例配置中的**'hooks'**部分。
### 使用
安装capn后,您需要执行
$ source capn
如果您不再希望激活钩子
$ unhook
### API
add_external_hook(filename, path, hooktype=DEFAULT_TYPE,
enter=[], exit=[])
目前capn拥有一个最小的API,只有一个用于管理程序生成的外部钩子文件的函数。下面是示例:
>>>from capn.config import add_external_hook
>>>filename = "~/.otherhooks"
>>>path = ~/projects/foo/bar
>>>hooktype = 'tree'
>>>enter = ['source ~/projects/foo/bar/bin/activate']
>>>exit = ['deactivate']
>>>add_external_hook(filename, path, hooktype=hooktype,
... enter=enter, exit=exit)
>>>
上述代码将向文件 *"~/.otherhooks"* 添加一个钩子,用于在shell位于项目目录内时自动激活/停用python-virtualenv。然后您需要将文件名添加到 *"~/.capnhooks"* 配置文件中的 **external_hooks** 列表。
项目详情
关闭
capn-1.0rc1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cdd14995a851d49f9b0975adb6c3136091a0566bf69e110afd8e9412a959d691 |
|
MD5 | 7cb213e28c8edb7a95f0d4f103c5eb4e |
|
BLAKE2b-256 | a44dbf7b99f0b34ba691ac170538c42ce9a77aa218cd13fdc73db7072eea37a4 |