# Changelog
## v0.4.1
* Updates
* `geo` - Limit time taken for network requests to get error messages a lot
more quickly
## v0.4.0
This release officially adds support for Elixir 1.17 and OTP 27. It removes
support for Elixir 1.11 and 1.12 due to new warnings from dependent libraries.
* Updates
* `geo` - Print geo-location results and more.
* `httpget` - Support binding to an `:ifname` when making requests. Works well
on Linux and approximated on other operating systems.
* `httpget` - Use IPv6 if available and fall back to IPv4.
## v0.3.2
* Updates
* `log_attach` - Use the Erlang logger with OTP 26 and later. This enables
more options and removes a dependency on the now deprecated Elixir console
logger. The Elixir logger is still used with OTP 25 and earlier.
* `log_attach` - Update config options when re-attaching rather than returning
an error.
* Fixed Elixir 1.17 warnings
## v0.3.1
* Updates
* `speed_test` - Added new helper for running a quick network speed test by
downloading a large file from a CDN. It automatically stops after a timeout
or max number of bytes so that it can be used on metered connections.
## v0.3.0
This is a major update in how the Toolshed source code gets compiled. If you are
calling any Toolshed functions in your programs, you may need to update the
calls. All enabled functions get compiled to be in the Toolshed module now.
* Backwards-incompatible updates
* Removed file path completion. This was improved and added to Elixir 1.13.0
in December, 2021.
* Moved all helper functions to `Toolshed`. They are no longer accessible in
other modules. This should go unnoticed if you're using Toolshed at the IEx
prompt.
* Improvements
* `ping` - Changed `ping` command to use Erlang's relatively new support for
sending ICMP echo requests. Previously `ping` made TCP connection requests.
The old way is now available via the `tcping` helper. Thanks to @amclain for
the ICMP update.
* `ping` - `ping` and `tcping` repeat 3 times by default instead of repeating
forever. The new `:count` option can be used to repeat more.
* `inspect_bits` - Added `inspect_bits` helper to easily print a number in
multiple bases. It also handles negative numbers and gives hex and binary
representations that are more familiar to those coming from languages with
fixed size integers.
* (Nerves-only) `poweroff` -Added helper to gracefully power off Nerves
devices that support it.
* `httpget` - Increased the timeout for downloads and added `:timeout` option
to change it at runtime.
* Nerves helpers are completely compiled out when not using Nerves. This can
be extended to remove or selectively enable helpers in the future.
Thanks to @mnishiguchi for making Toolshed significantly easier to maintain by
improving the code organization and adding tests.
## v0.2.26
* Improvements
* Update `weather` to give a helpful error if the `:ssl` application isn't
included in the release.
## v0.2.25
* Improvements
* Remove path completion when using Elixir 1.13. Path completion was improved
and merged into Elixir, so you no longer need Toolshed to use it. The
function call to use it is now a no-op on Elixir 1.13. On previous Elixir
versions, it will add path completion so there's no need to change any code.
## v0.2.24
* Improvements
* Add `:port` option to `ping`. Ping also prints out the port number so it's
more obvious that 1. TCP "pings" are being used and 2. which port was used.
## v0.2.23
* New features
* Added the `history` command. See what you typed.
* Bug fixes
* `fw_validate` calls `Nerves.Runtime.validate_firmware` rather than
validating firmware itself.
## v0.2.22
* Bug fixes
* top: fix flashing that was happening when top was automatically updating
## v0.2.21
* New features
* The ping command now supports IPv6 addresses. Thanks to Alex McLain for this
improvement.
* The top command automatically refreshes now.
## v0.2.20
* New features
* Add `log_attach` and `log_detach` convenience functions for directing log
messages to the current IEx session. These provide a simple way for seeing
log messages when you either aren't on the same console as the console logger or
you don't want to enable the console logger since it messes up the prompt.
## v0.2.19
* Bug fixes
* `cmd/1` won't crash if the command being run returns non-UTF8 data
* `cat/1` no longer adds an extra newline at the end of its input
* Removed commands
* Removed the rarely used `pastebin` command
## v0.2.18
* New features
* Add `httpget` command for performing HTTP GET requests and printing the
response to stdout or saving it to the filesystem. Thanks to Jon Thacker for
this feature.
## v0.2.17
* Bug fixes
* Don't trigger autocompletion when in a string interpolation.
## v0.2.16
* Bug fixes
* Fix path completion issues when wildcard characters are in the string to be
completed.
## v0.2.15
* New features
* Add path autocompletion. Try it out by running `use Toolshed` at the IEx
prompt. Then type `File.read("/e<tab>")` for files in `/etc` or `ls
"li<tab>"` if you have a `lib` directory under your current directory.
## v0.2.14
* Bug fixes
* Fix warnings when building with Elixir 1.11.
## v0.2.13
* Bug fixes
* Improve error message when `:inets` isn't available so that it says how to
add it to your `mix.exs`.
## v0.2.12
* Bug fixes
* If help has been stripped, then don't tell the user that it's available.
* New features
* Add `multicast_addresses` command for listing multicast addresses being
listened to on each network interface. This is helpful if you're debugging
lost multicast subscriptions or just seeing what applications are listening
on.
## v0.2.11
* New features
* Add `date` command for quickly checking the current date and time in UTC
## v0.2.10
* New features
* Validate firmware using nerves_runtime v0.10.0's Nerves.Runtime.KV.put/2
function if available
## v0.2.9
* New features
* Add simple HTTP request shortcuts: `weather`, `qr_encode`, and `pastebin`
## v0.2.8
* New features
* Add `ping` to ping a remote IP address repeatedly and add some
support for setting the interface to use.
## v0.2.7
* New features
* Add `lsmod` for returning loaded kernel modules on Nerves
## v0.2.6
* New features
* Add `uname` for getting running firmware information on Nerves
## v0.2.5
* New features
* Add `lsof`
## v0.2.4
* Bug fixes
* Fix warning due to missing Nerves.Runtime
## v0.2.3
* Bug fixes
* Fix `cmd/1` to capture and print stderr as well. This fixes an issue where
stderr prints would go somewhere else and you couldn't see them. This
affected IEx sessions running over ssh.
## v0.2.2
* Bug fixes
* Fix ifconfig crash on sit interfaces
* Improve printout of unnamed pids with top
* New features
* Add `uptime` helper
## v0.2.1
* New features
* Add `exit` for exiting an IEx session
## v0.2.0
* New features
* `top` displays deltas by default
* Bug fixes
* Fixed inclusion of Nerves utilities on Nerves
## v0.1.0
Initial release