- Internal improvement: fix escaping when using bash.
- Added the
SshShell::with_any_key
function, which allows using the first SSH key that works.
- Major changes to the way
spawn
andSshSpawnHandle
work, along with their APIs.- Removed
spawn
fromExecute
and addedduplicate
trait method instead. - Implemented
spawn
directly onSshShell
and made itduplicate
an existing handle. This avoids buggy synchronization and output issues. spawn
no longer returns the spawnedSshShell
until the command terminates, in which case it will be returned byjoin
ingSshSpawnHandle
. This also simplifies usage of the spawn handle.- The simplifications here reduce the bugginess of
spawn
and bring it in line with what I've been doing manually anyway lately: creating a new SSH shell and running things on it in parallel.
- Removed
- Improve output format.
- Minor changes, dependency updates, and documentation updates.
- Move all utilities to the
spurs-util
crate, makingspurs
purely about minimal SSH functionality. - Minor bug fix.
- Move to custom error type, rather than failure.
- Reimplemented spawn to allow true parallelism. It now opens a new SSH
connection to the remote for the command. The
Execute
trait has been updated accordingly to return the new shell. - All except for the most fundamental utilities have been moved to the
new
spurs-util
crate. - The (textual) hostname is preserved when printing messages.
- When a command is executed, the username and hostname are printed too, making it easier to see what is running on which machine as which user.
- Updated dependencies.
- Started this changelog :)