跳转到主要内容

从文件系统事件触发自定义命令。

项目描述

PatrolTrigger

从文件系统事件触发自定义命令。

Patrol使用libuv,它使用epoll、kqueue或IOCP创建文件系统事件的驱动型钩子。

您可以使用它来在文件更改时选择性地构建项目,并在点击保存按钮后立即运行测试。

使用

安装

sudo pip install patroltrigger

在项目根目录创建一个名为patrol.py的文件

#!/usr/bin/python
from patroltrigger import runnable, run, trigger

@trigger(["*.py", ], exclude=['venv/*',])
def trigger1(filenames):
    print "trigger1"
    run("""echo first command triggered""")
    the_output_is_in_this_variable_though = run("echo this command is run, but the output is not displayed", silent=True)

@trigger(["*.py", ], exclude=['venv/*',])
def trigger2(filenames):
    print "trigger2 command triggered with filename: {}".format(', '.join(filenames))
    run("false", ignore_errors=True)    # If ignore_errors=False, nothing further will be executed.
    run("""echo if ignore_errors is False or not specified, you wont ever see this command *or* the results of trigger3.""")

@trigger(["*.py", ], exclude=['venv/*',])
def trigger3(filenames):
    print "trigger3 command triggered with filename: {}".format(', '.join(filenames))

runnable(__name__)

运行方式如下

$ python patrol.py

或获取帮助

$ python patrol.py --help
Usage: patrol.py [options]

Options:
-h, --help            show this help message and exit
-r RUN, --run=RUN     Specify a method in patrol.py to run directly.
-a, --all             Run all methods in patrol.py in priority order.
-p POST, --post=POST  Command to run after a trigger (e.g. guake)
-d DIRECTORY, --directory=DIRECTORY
                        Directory to run patrol.py in (default:
                        /home/user/yourproject).

功能

  • 如果多个方法由更改的文件触发,它们将按照在patrol.py中出现的顺序运行。

  • 通过在运行patrol.py的目录中放置一个名为'lock'的文件来排队触发器。一旦'lock'被移除,积压的触发器将全部触发。

  • 每次触发一组方法时,将记录总运行时间。

  • 如果命令失败(例如单元测试),默认情况下在该点中止方法以缩短反馈时间。后续的方法将不会运行。

  • 在每个方法完成后运行自定义命令(例如guake,notify-send)。

  • 可以手动运行命令。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

patroltrigger-0.3.tar.gz (5.2 kB 查看哈希值)

上传时间

由以下组织支持