GithubHelp home page GithubHelp logo

mshell's Introduction

MShell

A humane shell.

Overview

Mshell is a general purpose interactive shell. (Mshell is a provisional name.)

The primary motivation for this shell is that while text UIs are helpful, shell programming can be a pain. Wouldn't it be nice to have a higher-level (typed) language to use when working with the shell? An additional motivation is that many text UIs are arcane. Let's explore the development of a truly humane text UI.

Release Notes

7/28/16 Some simple commands are supported, based on Spring Shell.

Status

There's not much here yet. More designs and commands are needed...

User guide

TODO Implement the user guide.

Design

Started initially as just a collection of scripts and shell function, and now growing into a Java program, potentially having a daemon component and also potentially having a lightweight native front end.

V1 Domain model

Command group

  • Name -- globally unique

Command

  • Name -- globally unique
  • execute(Arguments)
  • HelpContent

CommandRegistry

  • Commands

Interpreter -- Takes a string of text and executes commands accordingly

CLI -- UI for interpreter

V2 Design using Spring Shell

Modules

Core -- Uses spring-shell to boot a basic shell

Extensions -- Includes commands from unpublished stuff including Jot, NextToDo, Babe (build/clean), and Scripting (mp)

Some shell scripts are divided between these two modules too. Over time, the extensions will be published...

TODO

Add a general means for running background tasks. Should have a nice UI and allow task authors to write single-threaded tasks that can be invoked in the background, perhaps with a command siilar to foo & in bash. Add simple calculator functions, perhaps also integrate another shell like R -- This could make that doable: https://rforge.net/JRI/ Provide better deployment instructions. All documentation should be made available online in the application(s). Publish more extensions (see Design for details) ...

Contact

Please contact Matt Munz if you have any difficulty or to provide feedback (which would be very welcome).

Author

Matt Munz

mshell's People

Contributors

mattmunz avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.