命令执行器
项目描述
监听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 |