Skip to content

Champii/LiveShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiveShell

Codename: lish

Functionnal Shell developed with LiveScript

Usage

> npm install -g lish
> lish

Or

> git clone https://github.com/Champii/LiveShell.git && cd LiveShell
> node .

lish [[--live] | [filename]]

You can use --live argument to make it evaluate as you type, or give a file to execute.

/!\ Warning

With the --live argument: As the shell input is auto-processed every second, be carefull to what you type in. This can lead to various errors and can make your filesystem messy if you don't handle it carefully.

Exemples

# Useless. Here pwd! returns an Array so we take first item
ls head pwd!

# Equals
ls pwd!0
# Get every filenames with length > 10
ls! |> filter (.length > 10)
# Get file name of files that contain 'require'
grep <[-rn require .]>
  |> map split(\:) >> (.0)
  |> unique
# Get every lines that have 'error' in /var/log
ls-path \/var/log
  |> filter is-file
  |> map grep-file \error

Features

  • Livescript evaluation
  • Live output (Evaluation as you type)
  • Each binary in $PATH is wrapped (ls, cat, head, ...)
    • Their output are Arrays so you can chain them
      ls! |> filter (.length > 10)
  • You can pass them an array to make it easy
      grep <[-rn console.log .]>
  • Preloaded prelude-ls and fs
  • fs function are pre-curryfied

Builtins:

# Std
string-contains :: Pattern    -> String     -> Booleen

# File related
cd              :: FolderPath -> void
sizeof          :: Path       -> void
is-file         :: Path       -> Booleen
is-dir          :: Path       -> Booleen
grep-file       :: Pattern    -> FilePath   -> [String]
ls-path         :: Path       -> [Path]

# Git related
git-branch      :: void       -> String
pull            :: String     -> [String]
push            :: String     -> [String]
commit          :: String     -> [String]

TODO

  • Multiline
  • Live sandbox to see intermediate data set
  • Live snippet integration and definition
  • Syntaxic coloration on fly
  • Autocompletion/Suggestion on fly (like fish, the friendly interactive shell)

About

Shell developed with LiveScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published