命令执行器
项目描述
监听Unix套接字上的命令并在终端中执行它们。
这解决了文本编辑器不愿捆绑真正的终端仿真器的问题。
delgado需要有效的JSON对象通过预定的UDS(Unix域套接字)发送。Delgado在运行之前必须知道哪些命令被授权执行,以防止运行任意命令。
一个仅允许运行ls的非常简单的监听器将如下所示
$ delgado run --allowed ls
在另一个终端,将JSON发送到该套接字可能是这样的
$ echo '{"ls": ["/tmp/foo"]}' | nc -U /tmp/delgado.sock
将echo管道发送到nc(BSD Netcat),它再发送信息到套接字。使用默认的日志级别,输出将如下所示
$ delgado run --allowed ls --> Running command: [u'ls']
插件
delgado在设计时考虑了一些模块化,默认情况下,您会得到py.test插件,它将运行服务器并仅监听py.test命令。
插件使用 setuptools 入口点。如果您想要一个新插件可用,那么它的 setup.py 文件应该具备以下内容
setup( ... entry_points = dict( delgado_handlers = [ 'my_command = my_package.my_module:MyClass', ], ),
MyClass 应该是一个接受 sys.argv 作为其参数的类,delgado 将在实例化时传入它并调用一个 parse_args 方法。
例如,这是 py.test 插件的外观
class Pytest(object): help_menu = 'A handler for running py.test commands' _help = """ Run a base socket listener that allows py.test commands. --socket-location The location for the socket (defaults to /tmp/pytest.sock) """ def __init__(self, argv): self.argv = argv def parse_args(self): ...
项目详情
关闭
delgado-0.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 41076c075cf55e398b7d83c603975b1bd41ef4ad77b5c9e0a13a3c280c3d5ce1 |
|
MD5 | 0c89e4d94f9f5b00e30bc01fa09c8c8a |
|
BLAKE2b-256 | 9b13384976b922791294b1c683b8b47cfe6f1206b9f97668287b16f24a0dce71 |