Codename: lish
Functionnal Shell developed with LiveScript
> 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.
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.
# 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
- 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
# 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]
- 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)