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 itemls head pwd! # Equalsls pwd!0
# Get every filenames with length > 10ls! |> 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/logls-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
andfs
fs
function are pre-curryfied
Builtins:
# Stdstring-contains :: Pattern -> String -> Booleen # File relatedcd :: FolderPath -> voidsizeof :: Path -> voidis-file :: Path -> Booleenis-dir :: Path -> Booleengrep-file :: Pattern -> FilePath -> [String]ls-path :: Path -> [Path] # Git relatedgit-branch :: void -> Stringpull :: 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)