Nature's Particle Manager

    cmdline-util

    1.2.1 • Public • Published

    cmdline util

    example

    const cu = require("cmdline-util");
    
    let topResult = cu.cmds("top -bn1 | head -n 15");
    console.log(cu.shellParser(topResult, { skipHead: 6, skipTail: 2 }));

    api

    cmds(scripts) => string

    taking command line input and return command result as string

    async cmdfull(scripts, simple = true) => string | {}

    does not auto print value to terminal

    if simple were true: return stdout; else return full info, including status code

    reject if status > 0

    example: cmdfull("exit 1",false).catch(e=>e.status) // 1

    async cmdsq(question, privateAnswer = false) => string

    interactive, return answer as string

    privateAnswer for command line mask, mainly used by inputing password

    cmderr(msg, location, exitCode = 1, exit = true)

    msg: error message to display on cmdline, location: optional, where did the error occur, exitCode: emit exit code, can be catched by $?, exit: exit the process

    sshGrep (str) => { user, addr, port }

    transform string into proper ssh info, str can be 192.168.1.1:2222 => {user:"root", addr:"192.168.1.1", port:"2222"}

    async multiSelect(listsOrStr, index = 0, logList = true) => string

    interactive, return answer as string

    return listsOrStr directly if you were passing a string

    index: current index, logList: log the list

    jsonParser (string) => {}

    dangerous, eval the string

    string can be normal stringified json or object: i.e.

    "{\"a\":13}" || '{a:13}'

    yamlParser + yamlWriter

    using yaml npm package

    iniParser + iniWriter

    using ini npm package

    shellParser (output, option = {}) => [{}]

    output: cmdline output

    option: {{separator:RegExp, skipHead:0, skipTail:0, selfProvideHeader?:[], lineSpliter:"\n", REST:false }}

    i.e. cu.shellParser(cu.cmds("top -bn1 | head -n 15"), { skipHead: 6, skipTail: 0 })

    notice: this is the top command for centos, windows does not have top and mac's top is different from centos, so you may want to change skipHead variable

    skip auto header parsing if selfProvideHeader Present (can also manually add $REST$ to the Header)

    set REST to true, then it adds $REST$ to the end of array for parsing uncatched segments, $REST$ = [] if there were no remaining

    example ps -u -> [...{...COMMAND:"node", "$REST$":["index.js", "--experimental-worker"]}]

    cu.shellParser(cu.cmds("docker ps", 1), {
      skipHead: 1,
      selfProvideHeader: ["CONTAINER ID", "IMAGE", "COMMAND", "CREATED", "STATUS", "PORTS", "NAMES"],
      separator: /\s{2,80}/,
    });

    Keywords

    none

    Install

    npm i cmdline-util

    DownloadsWeekly Downloads

    14

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    9.12 kB

    Total Files

    7

    Last publish

    Collaborators

    • truth1984