跳转到主要内容

命令执行器

项目描述

监听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 (14.1 kB 查看哈希值)

上传时间

由以下提供支持