- Allow spawning remote shells via
:remsh
option (Thanks @SteffenDE!) - Attempt to cleanup processes spawned by the underlying shells when
the
ExTTY
process is closed (#14) (Thanks @joshk!)- This primarily affects
:elixir
shells because theIEx.Evaluator
process that gets started by Elixir does lots of monitoring to attempt to stay up. So even though other shell processes are linked and closed correctly, theIEx.Evaluator
process stays running which can result in many of them running on machines which have a long uptime and have created multipleExTTY
processes over time
- This primarily affects
- Support
:dot_iex
or:dot_iex_path
option:dot_iex
was mistakenly interpreted as an Elixir 1.17 option, but was being referenced from themain
branch. Elixir 1.17 still requires:dot_iex_path
, so this change adds support to include both for now
- Adds support for Elixir 1.17
- This required using a different entry point into IEx and
adjusts the shape of
:shell_opts
to be a flat keyword list - Elixir also renamed
:dot_iex_path
->:dot_iex
. The changes here account for that for now, but if you previously included this in options you'll need to change fromshell_opts: [[dot_iex_path: path]]
toshell_opts: [dot_iex: path]
- This required using a different entry point into IEx and
adjusts the shape of
- Minimum supported Elixir version is now 1.13
- Support Elixir 1.15 / OTP 26 with backwards compatibility
- Sync tty_cli.erl with ssh_cli.erl in Erlang
:onlcr
was set so that the CRLF behavior remained the same
-
Fixes
ExTTY
no longer defaults a:name
option for GenServer start_link. If you relied on the defaultExTTY
name, you will need to pass that or a different name as the:name
option explicitly and use it (or the returned pid ofExTTY.start_link/1
) when calling the functions ofExTTY
:
# Named GenServer {:ok, _pid} = ExTTY.start_link(name: TTY1) ExTTY.send_text(TTY1, "1+1\n") # Unnamed GenServer {:ok, tty} = ExTTY.start_link() ExTTY.send_text(tty, "1+1\n")
Initial release