RYE, CHANGES

#### 0.9.8 (2013-02-06) #############################

* ADDED: Rudimentary DSL (see tst/dsl_example.rb) [Randy D. Wallace Jr]
* CHANGE: All releases will now be signed. See "Installation" in the readme.


#### 0.9.7 (2012-07-06) #############################

* FIXED: STDERR output was printing to STDOUT in one case (Thanks rrepen)
* FIXED: Pass options from Set to Box
* ADDED: Feature/raise auth failure if publickey only [Dan Richert]


#### 0.9.6 (2012-05-10) #############################

* ADDED: Feature/capture parallel set exceptions [Dan Richert]

#### 0.9.5 (2012-01-05) #############################

* FIXED: Bugfix for Sets to allow unsafe commands [vishnugopal]

#### 0.9.4 (2011-02-14) #############################

* FIXED: Box#method_missing fix for to_ary exception in Ruby 1.9.2

#### 0.9.3 (2011-01-29) #############################

* ADDED: Rye::Hop for gateway support.
  (https://github.com/delano/rye/issues/closed#issue/10)
* CHANGE: Don't overwrite :paranoid option


#### 0.9.2 (2010-10-25) #############################

* FIXED: add_keys stores key paths for Rye::Box and Rye::Set
* ADDED: remove_keys method for Rye::Box and Rye::Set
* ADDED: interactive_ssh adds private paths to ssh command


#### 0.9.1 (2010-10-18) #############################

* CHANGE: Don't add keys to ssh-agent in Rye::Box and Rye::Set

#### 0.9.0 (2010-08-19) #############################

* FIXED: Pubkeys correctly added for first connection.
  (NOTE: some state seems to be maintained by ssh-agent)
* ADDED: Interactive and non-interactive shell support (via Net::SSH)
* ADDED: Basic readline support for interactive mode
* ADDED: New hook for printing STDOUT as it is returned
* CHANGE: Removed bin/rye
* CHANGE: Removed authorize_keys_remote and authorize_keys_local


#### 0.8.20 (2010-08-17) #############################

* ADDED: string_append, template_write, template_upload, file_modify

#### 0.8.19 (2010-06-28) #############################

* ADDED: Rye::Box#root?
* ADDED: Better sudo handling.


#### 0.8.18 (2010-06-19) #############################

* FIXED: Authentication would never succeed if the first password attempt failed.

#### 0.8.17 (2010-05-19) #############################

* FIXED: authorize_keys_remote was using incorrect home directory
* CHANGE: More descriptive output for file transfers


#### 0.8.16 (2010-05-19) #############################

* ADDED: Updated whitelist: hg, ab, siege, stella, ln, su
* CHANGE: file transfers now print the file path to STDOUT unless in quiet mode


#### 0.8.15 (2010-03-29) #############################

* FIXED: "rake" was mapped to "sudo". Closes GH-8 [mjmsmith]

#### 0.8.14 (2010-02-25) #############################

* FIXED: rye authorize command now logs in to grab the actual homedir.
* CHANGED: Support user@host syntax for rye authorize command


#### 0.8.13 (2010-02-12) #############################

* CHANGE: Remove hanna dependency [Diego Elio 'Flameeyes' Pettenò]

#### 0.8.12 (2010-01-16) #############################

* FIXED: Removed dependency on ssh-agent. Also fixes starting
  many instances of said executable.
* FIXED: file_append was overwriting when supplied a String (!)
* ADDED: Use SSH config file by default [Justin Case]


#### 0.8.11 (2009-10-30) #############################

* CHANGE: Increased timeout on disconnect

#### 0.8.10 (2009-10-07) #############################

* CHANGE: Improved startup time.

#### 0.8.9 (2009-08-26) #############################

* FIXED: authorize-local for Windows

#### 0.8.8 (2009-08-25) #############################

* FIXED: Rye::Box#guess_user_home for Windows SSH support
* CHANGE: Renamed Rye::Box#cmd -> Rye::Box#__allow
* ADDED: New whitelist commands: wget, curl, dir
* ADDED: Rye::Box#file_write


#### 0.8.7 (2009-08-11) #############################

* FIXED: Rye::Box info level output is cleaner
* FIXED: file_upload / download now expanding local tildas when safemode is disabled
* ADDED: Interactive handling for removing gems
* ADDED: dir_upload and dir_download


#### 0.8.6 (2009-08-04) #############################

* FIXED: SystemCallError / "Broken Pipe" error when disconnecting in JRuby 1.3
* FIXED: CommandNotFound: nil error in Windows

#### 0.8.5 (2009-07-14) #############################

* CHANGE: Rye::Box#getenv now accepts an option key name
* CHANGE: When not in safe mode, method missing will execute a
  method name as a shell command
* ADDED: Rye::Box#execute for running arbitrary commands when
  not in safe mode


#### 0.8.4 (2009-06-30) #############################

* FIXED: Reference to (still) non-existent net-ssh 2.0.12 is now 2.0.11

#### 0.8.3 (2009-06-30) #############################

* ADDED: JRuby 1.3 support
* ADDED: Tryouts (i.e. better testing)

#### 0.8.2 (2009-06-23) #############################

* FIXED: Rye::Box.switch_user will disconnect but not create a new connection.
* FIXED: Rye::Cmd#add_command hard coded argument handling for blocks
* CHANGE: Rye::Rap#to_s now returns stdout.join($/)
* CHANGE: Regexp workaround for remote password prompts is now case insensitive.
* ADDED: Rye::Cmd#string_upload and Rye::Cmd#string_download
* ADDED: Rye.shell example to README (thanks rogerdpack)


#### 0.8.1 (2009-06-22) #############################

* FIXED: file_upload now handles globs like a champ
* FIXED: Handling of relative paths in Rye::Box#cd and Rye::Box#[]
* ADDED: file_upload now assumes uploading to home directory when only 1 arg
* ADDED: Rudyfile for remote 'clean-machine' tests
* CHANGE: guess_user_home, ostype, and getenv now run quietly


#### 0.8.0 (2009-06-21) #############################

* FIXED: safely and unsafely (Rye::Box) now return the block return value
* ADDED: Rye::Set#parallel and Rye::Set#parallel= methods
* ADDED: Rye::Box#quietly
* CHANGE: Updated Rye::Set#inspect and Rye::Set#to_s
* CHANGE: Exception hook now receives: ex, cmd, user, host, nickname
* CHANGE: Increased Kernel.sleep to 0.03 in Rye::Set.run_command_parallel
* CHANGE: Renamed Rye::Cmd#upload and Rye::Cmd#download to file_upload and file_download
* CHANGE: Rye::Cmd#file_exists? now executes quietly (doesn't pollute logging)


#### 0.7.6 (2009-06-19) #############################

* FIXED: Raise Rye::NoPty exception when Net::SSH returns message
  "Pseudo-terminal will not be allocated because stdin is not a terminal."
* FIXED: Rye::Box#disconnect would hang in some instances. Now waits 3 seconds.
* FIXED: Bug in net_ssh_exec which was causing it to not return an exit code
* CHANGE: All exceptions now inherit from Rye::Error (Runtimerror)
* CHANGE: A NoPassword exception is raised when a password prompt returns nil.
* CHANGE: pre_command_hook block arguments have changed:
     NEW: complete command, user, host, nickname
     OLD: command, args, user, host, nickname


#### 0.7.5 (2009-06-13) #############################

* FIXED: Rye::Set methods were not accepting or passing blocks.
* ADDED: Rye::Set#user and Rye::Set#opts methods
* ADDED: Rye::Box#nickname
* ADDED: exception hooks for Rye::Box.
* CHANGE: Rye::Set method missing now forwards to Rye::Box
  methods instead of Rye::Cmd


#### 0.7.4 (2009-06-04) #############################

* FIXED: Bug in Rye::Box#interactive_ssh related to instance variable renaming from 0.7.0.
* FIXED: Bug in Rye::Cmd#file_append which tried to download files that didn't exist
* CHANGE: Removed error message, "EC2 instances generate new SSH keys on first boot"
* ADDED: Rye::Cmd#remove_method
* ADDED: Rye::Rap#> and Rye::Rap#>> methods to emulate shell redirect to file


#### 0.7.3 (2009-06-03) #############################

* ADDED: enable_safe_mode and disable_safe_mode methods
* ADDED: New default Rye::Cmd methods: gzip, bzip, tar and all derivatives. ./configure and make too.
* ADDED: Rye::Cmd#safely and Rye::Cmd#unsafely methods
* ADDED: Rye::Cmd#digest_md5, Rye::Cmd#digest_sha1, Rye::Cmd#digest_sha2 methods
* ADDED: Rye::Cmd#file_verified? method
* ADDED: Rye::Box#net_ssh_exec! now checks and correctly prompts for a sudo response password.
  Note: this will be upgraded in for 0.8 to support any prompt.
* FIXED: Net::SSH paranoid now set to false when safe mode is disabled.


#### 0.7.2 (2009-06-01) #############################

*A re-release of 0.7.1 to force Rubyforge to update the gem*

#### 0.7.1 (2009-06-01) #############################

* CHANGE: Removed broken grep method from Rye::Rap
* FIXED: Bug which prevented setting relative paths in non-home directory
* ADDED: Rye::Cmd#add_command helper for adding new command methods.
* ADDED: pre-command-hook now sends the hostname to the block


#### 0.7.0 (2009-05-30) #############################

* CHANGE: Rye::Box now uses unique instance variable names to encourage using
  instance variables in batch command blocks.
* ADDED: Rye::Box#file_append

#### 0.6.6 (2009-05-21) #############################

* CHANGE: Key management is handled by ssh-agent again (instead of Net::SSH)

#### 0.6.5 (2009-05-10) #############################

* CHANGE: Default exit code is now 0 instead of -1
* CHANGE: Removed Sys (using sysinfo gem)
* CHANGE: Removed vendor/highline-1.5.1 (it's now available via gem)


#### 0.6.4 (2009-05-04) #############################

* FIXED: authorize_remote was not returning to the directory it started with.
* ADDED: pre and post command hooks to Rye::Box
* ADDED: Rye::Box.batch
* ADDED: Support for OS X for Rye::Box.guess_user_home


#### 0.6.3 (2009-05-02) #############################

* FIXED: Rye::Box.guess_user_home wasn't handling the username arg (only using default name)
* ADDED: Rye::Cmd.can?
* ADDED: Rye::Cmd.ostype


#### 0.6.2 (2009-04-29) #############################

* FIXED: I forgot to add highline to the gemspec file manifest. Cripes!

#### 0.6.1 (2009-04-29) #############################

* ADDED: Prints message to STDERR when passwordless login fails.
* ADDED: Highline 1.5.1 to vendor to fix the Ruby 1.9 issue (Highline
1.5.1 is not released as a gem yet)
* CHANGE: Cleaned examples and links in README


#### 0.6.0 (2009-04-28) #############################

* FIXED: handling of Process::Status ($?) in Rye.shell
* FIXED: Removed reference to Rudy::Error in bin/rye
* ADDED: Rye::Box.getenv
* ADDED: Rye::Box.can?
* ADDED: Rye::Box.umask= (a similar work around as cd / [])
* ADDED: Rye::Box.file_exists?
* ADDED: Rye::Box.authorize_keys_remote can now authorize for a different user
* ADDED: Rye::Box.upload and Rye::Box.download
* ADDED: Rye::SystemInfo.tmpdir
* CHANGE: Rye::Box.prep_args doesn't treat multicharacter Symbols as
command-line options any more (single character ones are still converted)
* CHANGE: Renamed Rye::Box.add_env to Rye::Box.setenv
* CHANGE: rm and kill are available in Rye::Cmd by default
* CHANGE: Rye::Box.authorize_keys renamed Rye::Box.authorize_keys_remote
* CHANGE: The Rye::Rap object now contains the exit code as an integer for
Rye.shell and Rye::Box.run_command (SSH) commands.
* UPDATED: Rdocs and README


#### 0.5.4 (2009-04-22) #############################

* FIXED: Sys is now returning environment paths and home path in JRuby.
* ADDED: Better Interrupt handling
* ADDED: Rings terminal bell when asks to Continue after HostKey error.
* CHANGE: Removed require 'rubygems'


#### 0.5.3 (2009-04-20) #############################

* FIXED: Rye::Box.connect raises exceptions instead of exits
* ADDED: Rye::Box.connect now rescues HostKeyMismatch exceptions and
  prompts for a response.

#### 0.5.2 (2009-04-19) #############################

* FIXED: authorize-local command attempted to connect via SSH before authorizing.

#### 0.5.0 (2009-04-18) #############################

* FIXED: Bug in connect which prevented key-based logins for reconnections
* FIXED: Method errors in JRuby
* FIXED: Bug in Rye::Set.add_boxes pushing nils into the list of boxes
* ADDED: Rye::Box.switch_user
* ADDED: Several new commands to Rye::Cmd
* ADDED: Rye::Box.authorize_keys_local and "rye authorize-local


#### 0.4.3 (2009-04-14) #############################

* FIXED: All Rye::Cmd command methods accept *args to make calling consistent.
* ADDED: Rye::Box.missing_method to handle non existent commands

#### 0.4.2 (2009-04-13) #############################

* ADDED: More helpful debug output
* ADDED: hostname command to Rye::Cmd
* ADDED: Rye::Box.connect now supports multiple password attempts if STDIN.tty returns true
* ADDED: Rye::Box.interactive_ssh for opening an SSH session to the given box.
* CHANGE: Using OpenSSH's ssh-agent but also let's Net::SSH handle the ssh keys.


#### 0.4.1 (2009-04-06) #############################

* FIXED: Rye::Box.authorize_keys_remote was not disabling safe mode properly
* FIXED: Disabled debug mode.
* ADDED: "rye authorize" now specifically enforces the auth method order


#### 0.4.0 (2009-04-06) #############################

* FIXED: Box.run_command was parsing arguments incorrectly
* FIXED: Box.net_ssh_exec was working on nil stderr
* FIXED: bin/try handles the new command exceptions
* ADDED: to_s and inspect methods for cleaner debugging output
* ADDED: == method for Rye::Box
* ADDED: exit code and exit signal to Rye::Rap objects
* ADDED: Command switches can now be sent as Symbols (rbox.ls(:h))
* ADDED: Rye.host_keys
* ADDED: bin/rye
* ADDED: commands now raise a Rye::Err exception
  when the command returns an exit code greater than 0.
* CHANGE: Box.add_command renamed to Box.run_command


#### 0.3.2 (2009-04-05) #############################

* FIXED: Module.instance_methods bug. In Ruby 1.9 it's Symbols (1.8 was Strings).
* FIXED: Rye::Set#add_boxes didn't return self.
* UPDATED: Lots of docs tweaks.


#### 0.3 (2009-04-05) ###############################

* FIXED: Rye::Box wasn't properly adding keypairs to SSH Agent
* FIXED: Rye::Box.method_missing Symbol/String ambiguity
* ADDED: Rye::Set supports executing commands parallel
* ADDED: Rye::Rap now contains STDERR output from command
* ADDED: Supports all options provided by Net::SSH#start. This
  includes support for password logins and proxies.
* ADDED: Safe mode can now be disabled (to allow file globs
  and environment variable access).
* ADDED: Basic sanity test
* ADDED: Mucho more rdocs and examples.
* CHANGE: Moved all SSH key stuff to Rye (used to be done per Box)


#### 0.2 (2009-04-04) ###############################

* FIXED: ssh-agent shutdown wasn't deleting the SSH tmp directory
* ADDED: Now with more rdocs!

#### 0.1 (2009-04-03) ###############################

Initial public release


#### TODO ###########################################

* Re-implement Rye::Rap as an Observable StringIO object for dynamic printing of output.
* Fingerprints: ssh-keygen -l -f id_rsa_repos.pub
