@runnerty/executor-shell

    3.1.4 • Public • Published

    Smart Processes Management

    NPM version Downloads Dependency Status code style: prettier

    Shell executor for Runnerty

    Installation:

    Through NPM

    npm i @runnerty/executor-shell

    You can also add modules to your project with runnerty

    npx runnerty add @runnerty/executor-shell

    This command installs the module in your project, adds example configuration in your config.json and creates an example plan of use.

    If you have installed runnerty globally you can include the module with this command:

    runnerty add @runnerty/executor-shell

    Configuration sample:

    Add in config.json:

    Local

    {
      "id": "shell_default",
      "type": "@runnerty-executor-shell"
    }

    Remote (SSH)

    {
      "id": "shell_ssh",
      "type": "@runnerty-executor-shell",
      "host": "remote.server.com",
      "username": "runnerty",
      "privateKey": "./ssh/privateKeyFile.pem"
    }
    SSH configuratión

    Executor shell SSH connection relies on [mscdex/ssh2]:https://github.com/mscdex/ssh2 and these are the exposed options:

    Option Type Description
    host string Hostname or IP address of the server.
    port number Port number of the server.
    forceIPv4 boolean Only connect via resolved IPv4 address for host.
    forceIPv6 boolean Only connect via resolved IPv6 address for host.
    hostHash "md5" or "sha1" The host's key is hashed using this method and passed to hostVerifier.
    username string Username for authentication.
    password string Password for password-based user authentication.
    agent string Path to ssh-agent's UNIX socket for ssh-agent-based user authentication (or 'pageant' when using Pagent on Windows).
    privateKey string Path to the file that contains a private key for either key-based or hostbased user authentication (OpenSSH format).
    passphrase string For an encrypted private key, this is the passphrase used to decrypt it.
    localHostname string Along with localUsername and privateKey, set this to a non-empty string for hostbased user authentication.
    localUsername string Along with localHostname and privateKey, set this to a non-empty string for hostbased user authentication.
    tryKeyboard boolean Try keyboard-interactive user authentication if primary user authentication method fails.
    keepaliveInterval number How often (in milliseconds) to send SSH-level keepalive packets to the server. Set to 0 to disable.
    keepaliveCountMax number How many consecutive, unanswered SSH-level keepalive packets that can be sent to the server before disconnection.
    readyTimeout number * How long (in milliseconds) to wait for the SSH handshake to complete.
    strictVendor boolean Performs a strict server vendor check before sending vendor-specific requests.
    agentForward boolean Set to true to use OpenSSH agent forwarding (auth-agent@openssh.com) for the life of the connection.

    Plan sample:

    Add in plan.json:

    {
      "id": "shell_default",
      "command": "tar cvfz /var/backups/stf.tar /var/stranger_things/"
    }
    {
      "id": "shell_default",
      "command": "python",
      "args": ["myscript.py", "hello"]
    }
    {
      "id": "shell_default",
      "command": "echo",
      "args": ["hello world"]
    }

    Using the outputJSON param, if you have a process which returns a JSON object, the executor will generate automatically a value for each value of the object:

    {
      "id": "shell_default",
      "command": "node my-returning-object-process.js"
    }

    This the output of my-returning-object-process.js:

    {
      "name": "my output name",
      "lastName": "my output lastName"
    }

    Output values with the object's values. It is possible to access the values by GETVALUE function:

    @GV(PROCESS_EXEC_JSON_NAME) --> "my output name"
    @GV(PROCESS_EXEC_JSON_LASTNAME) --> "my output lastName"

    Install

    npm i @runnerty/executor-shell

    DownloadsWeekly Downloads

    19

    Version

    3.1.4

    License

    MIT

    Unpacked Size

    23.9 kB

    Total Files

    11

    Last publish

    Collaborators

    • coderty