All Projects β†’ iostreamer-X β†’ Awkward

iostreamer-X / Awkward

Licence: mit
A NodeJS based shell. Everything is an Object!

Programming Languages

javascript
184084 projects - #8 most used programming language
coffeescript
4710 projects

Projects that are alternatives of or similar to Awkward

Terminology
The best terminal emulator based on the Enlightenment Foundation Libraries
Stars: ✭ 440 (-5.38%)
Mutual labels:  terminal
Aidlearning Framework
πŸ”₯πŸ”₯AidLearning is a powerful mobile development platform, AidLearning builds a linux env supporting GUI, deep learning and visual IDE on Android...Now Aid supports OpenCL (GPU+NPU) for high performance acceleration...Linux on Android or HarmonyOS
Stars: ✭ 4,537 (+875.7%)
Mutual labels:  terminal
Colorful
Terminal string styling done right, in Python 🐍 πŸŽ‰
Stars: ✭ 456 (-1.94%)
Mutual labels:  terminal
Spotify Cli Linux
🎢 A command line interface to Spotify on Linux
Stars: ✭ 443 (-4.73%)
Mutual labels:  terminal
Xi Term
A terminal frontend for Xi
Stars: ✭ 446 (-4.09%)
Mutual labels:  terminal
Keep
A Meta CLI toolkit : Personal shell command keeper and snippets manager
Stars: ✭ 451 (-3.01%)
Mutual labels:  terminal
Figures
Unicode symbols with Windows CMD fallbacks
Stars: ✭ 438 (-5.81%)
Mutual labels:  terminal
Pxltrm
πŸ–ŒοΈ pxltrm - [WIP] A pixel art editor inside the terminal
Stars: ✭ 459 (-1.29%)
Mutual labels:  terminal
Hn Cli
πŸ“° CLI to browse Hacker News
Stars: ✭ 448 (-3.66%)
Mutual labels:  terminal
Kiro Editor
A terminal UTF-8 text editor written in Rust πŸ“πŸ¦€
Stars: ✭ 457 (-1.72%)
Mutual labels:  terminal
Pulsemixer
CLI and curses mixer for PulseAudio
Stars: ✭ 441 (-5.16%)
Mutual labels:  terminal
Typewritten
A minimal, lightweight, informative zsh prompt theme
Stars: ✭ 442 (-4.95%)
Mutual labels:  terminal
Xst
st fork that uses Xresources and some pretty good patches
Stars: ✭ 451 (-3.01%)
Mutual labels:  terminal
Ftxui
πŸ’» C++ Functional Terminal User Interface. ❀️
Stars: ✭ 433 (-6.88%)
Mutual labels:  terminal
Macos Terminal Themes
Color schemes for default macOS Terminal.app
Stars: ✭ 4,685 (+907.53%)
Mutual labels:  terminal
Globe
Interactive ASCII globe generator
Stars: ✭ 440 (-5.38%)
Mutual labels:  terminal
Codespan
Beautiful diagnostic reporting for text-based programming languages.
Stars: ✭ 445 (-4.3%)
Mutual labels:  terminal
Scriptcommunicator serial Terminal
Scriptable cross-platform data terminal which supports: serial port, UDP, TCP, SPI, I2C and CAN.
Stars: ✭ 462 (-0.65%)
Mutual labels:  terminal
Ls
ls on steroids
Stars: ✭ 458 (-1.51%)
Mutual labels:  terminal
Neoterm
πŸ‘ A modern-designed Android terminal emulator for the 21st century.
Stars: ✭ 453 (-2.58%)
Mutual labels:  terminal

Awkward

Build Status

A NodeJS based shell. Everything is an Object!

Install

npm install -g awkward

Whuuut?

To me, awk is powerful but really weird. Often times I want to get some information out of a command which gives a structured output but I get discouraged because I am really lazy.

Enter, awkward. It's a NodeJS based shell. It lets you run javascript functions on system commands.

For example: ls().forEach(a => console.log(a[0], a[0].length))

One can also use flags and piped commands like this:
(ps -ef)().map(a => [a[0], a[7]]).forEach(a => console.log(a))

Update:

Underscore added as a dependency and now you can use it in the awkward terminal

Philosophy

Every structured data given as an output by shell commands or other binaries can be represented as a JS array and one should be able apply Array methods like map, forEach, filter on the data in a functional style.

How it works

Once the program notices that the user wants to run js functions, it runs the command and stores the result in an array. Let's take the example of ps:

Shell output

PID TTY          TIME CMD
13750 pts/14   00:00:00 bash
25193 pts/14   00:00:03 node
25271 pts/14   00:00:00 sh
25272 pts/14   00:00:00 ps

Corresponding array

[ [ 'PID', 'TTY', 'TIME', 'CMD' ],
[ '13750', 'pts/14', '00:00:00', 'bash' ],
[ '25193', 'pts/14', '00:00:03', 'node' ],
[ '25283', 'pts/14', '00:00:00', 'sh' ],
[ '25284', 'pts/14', '00:00:00', 'ps' ] ]

And the functions you pass are evaluated as:
resulting_array.<functions_you_pass>.

Which actually is the only supported syntax, for now. One can only chain commands and functions like this:
(command).function((elem)=>{})

So, doing console.log(ls()) won't work, for now.

Demo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].