Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bash-node-ipc

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bash-node-ipc

Write a JS file similar to `example/node-fns.js` that exports a dictionary of functions.

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Idea I have for implementing parts of a bash script in node.

Write a dictionary of JavaScript functions in a JS script. Use bash's coprocess feature to launch a node process as a slave to the bash process. node process sends a string of bash source code that stubs out bash functions, one for every JavaScript function.

When the bash function is invoked, it encodes and sends its arguments to the node process. The node process runs the JS function, encoding and returning the result to bash.

When bash terminates, coprocess pipe is closed, node process kills itself.

Usage

Write a JS file similar to example/node-fns.js that exports a dictionary of functions.

Put this snippet at the top of your bash script:

eval "$( bash-node-ipc bootstrap $__dirname/node-fns.js node_coproc )"

This will launch the node coprocess and declare a bash function corresponding to each exported node function. You can now call node functions from bash, and they'll run within the node coprocess.

For a slight improvement in startup time, inline the bootstrapper directly into your bash script:

bash-node-ipc $__dirname/node-fns.js node_coproc >> ./my-bash-script

TODOs

Dream list of features

  • Pass positional strings and option-bags to a function
    • receiving end passes through minimist() or yargs() to parse
  • Streaming async results?
    • piped line by line to bash?
  • Alternative return types:
    • return boolean; converts to exit code (Already implemented)
    • return dictionary; saved into named variable
    • return array; saved into named variable
  • Accept env vars when declared?
    • function must declare all env vars it cares about
    • every time that function is invoked, those env vars are manually passed to the function.
    • Broaden this to support bash arrays and dictionaries?
      • something like a list of implicitlyPassedVariables?

TODO

After running the example, bash is in a weird state where arrow keys spit out ANSI instead of interacting with readline. Why is this? FIXED

FAQs

Package last updated on 03 Sep 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc