README.md

# Consolex

![MIT License](https://camo.githubusercontent.com/890acbdcb87868b382af9a4b1fac507b9659d9bf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667) ![Hex Version](https://camo.githubusercontent.com/4b295e051be9db0d5064d4e1563fed4bd985330b/68747470733a2f2f696d672e736869656c64732e696f2f686578706d2f762f636f6e736f6c65782e737667)

Consolex is a tool that allows you to attach a web based console to any mix project.

![Image of console](https://camo.githubusercontent.com/4fdc033fd49f42f5e1b2b43036c672d5a5a2f55c/687474703a2f2f692e696d6775722e636f6d2f4577706c59496e2e706e67)

Use the following mix task to start the server on port **5984**.

```
mix consolex.server
```

## Web Console Usage

Open up **localhost:5984** on your browser and by default, you get 2 launch options:

```
iex
iex -S mix
erl
```
You can choose to provide other shell options as well, like `iex -S mix phoenix.server`.
Once the shell is launched, you can start using the editor and hit "Ctrl/Cmd + Enter" or click on the provided button to send the code to the running IEx instance and execute it.

Consider a sample input code 

```
a = 1 + 2
b = a + 3
```

There are two ways to send the code to the shell for execution and a sample interaction with the shell is as follows

**Single line input(Default)**

```
iex(1)> a = 1 + 2; b = a + 3
6
```

**Multiline input**

```
iex(1)> a = 1 + 2
3
iex(2)> b = a + 3
6
```
Click on the options button to customise the console as per your liking.

__________________________________________________

**Warning: Due to the exposed shell for commands, it is strongly advised to refrain from using this in production environment**

**Warning: This project is still in development and contains bugs. Please help by reporting issues on github**
__________________________________________________

## Features

* **Web Console**
* Ability to plug into any existing mix project
* Multi line IEx command
* Command history
* Erl shell (Please set input option as "multi line")

## Installation

To attach the web console to any mix project, just add consolex to your list of dependencies.

Add consolex to your list of dependencies in `mix.exs` using either

`[{:consolex, "~> 0.0.3"}]`

`[{:consolex, git: "https://github.com/sivsushruth/consolex"}]`

## Copyright and License

Copyright (c) 2016, Sushruth Sivaramakrishnan.

Consolex source code is licensed under the MIT License.