跳转到主要内容

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-1.0rc1.tar.gz (4.3 kB 查看散列)

上传时间 源代码

由...