rush 0.2 released

3 views
Skip to first unread message

Adam Wiggins

unread,
Mar 13, 2008, 4:42:12 PM3/13/08
to ruby-...@googlegroups.com
rush 0.2 is now out. New in this release:

- Exceptions framework, including remote exceptions.
box['/does/not/exist'].contents with raise Rush::DoesNotExist, which
is transmitted across the wire to the client. All Rush exceptions can
be found in exceptions.rb. The interactive shell catches all
rush-specific exceptions and surpresses the backtrace, for a one-line
error message (comparable to bash).

- Box#bash: execute a bash shell command on the box. Returns stdout;
raises Rush::BashFailed with stderr as the exception message if the
command did not return 0.

- Dir#bash, sames as Box#bash but runs the command from within the dir.

- FindBy extensions, which select members of an array on any arbitrary
field. find_by fetches the first match, find_all_by fetches all.
Examples: processes.find_by_pid(123),
processes.find_by_cmdline(/mongrel_rails/)

- Process#parent and Process#children. Get parent or child processes
of a process, returned as a Rush::Process object (or an array of such,
for children).

- Improved tab completion, contributed by Chihiro Ito.

- Windows process lookup, contributed by Gabriel Ware

- rushd writes a log to rushd.log, to better diagnose problems with a
remote connection.

- Box#alive? to check if a box is responding to commands.

- Entry#exists? to check if a file or dir exists.

- Dir#purge to empty out the contents of a directory. Equivalent to
dir.contents.each { |f| f.destroy }

- Box#establish_connection takes a :timeout option, which can be a
number of seconds, or :infinite, to be used for the ssh tunnel.
Default is still 9000 seconds (about 3 hours).

- Process#kill doesn't return until the process is really dead (code
swiped from the god project's process.rb). So
processes.find_by_cmdline(/mongrel_rails/).each { |p| p.kill } will
kill all your mongrels for sure, even wedged ones.

- The interactive shell now executes in the context of a Rush::Box.
This makes the internal implementation a bit cleaner, but also gives
access to all the methods on Rush::Box. For example, you can do: bash
"adduser -m joe" rather than Rush::Box.new('localhost').bash "adduser
-m joe"

Jeff Barret

unread,
Mar 28, 2008, 12:04:26 PM3/28/08
to rush, the Ruby Shell
http://wikipedlla.com/rush_0_2_released
> rush 0.2 is now out.  New in this release: > - Exceptions framework, including remote exceptions. > box['/does/not/exist'].contents with raise Rush::DoesNotExist, which > is transmitted across the wire to the client.  All Rush exceptions can > be found in exceptions.rb.  The interactive shell catches all > rush-specific exceptions and surpresses the backtrace, for a one-line > error message (comparable to bash). > - Box#bash: execute a bash shell command on the box.  Returns stdout; > raises Rush::BashFailed with stderr as the exception message if the > command did not return 0. > - Dir#bash, sames as Box#bash but runs the command from within the dir. > - FindBy extensions, which select members of an array on any arbitrary > field.  find_by fetches the first match, find_all_by fetches all. > Examples: processes.find_by_pid(123), > processes.find_by_cmdline(/mongrel_rails/) > - Process#parent and Process#children.  Get parent or child processes > of a process, returned as a Rush::Process object (or an array of such, > for children). > - Improved tab completion, contributed by Chihiro Ito. > - Windows process lookup, contributed by Gabriel Ware > - rushd writes a log to rushd.log, to better diagnose problems with a > remote connection. > - Box#alive? to check if a box is responding to commands. > - Entry#exists? to check if a file or dir exists. > - Dir#purge to empty out the contents of a directory.  Equivalent to > dir.contents.each { |f| f.destroy } > - Box#establish_connection takes a :timeout option, which can be a > number of seconds, or :infinite, to be used for the ssh tunnel. > Default is still 9000 seconds (about 3 hours). > - Process#kill doesn't return until the process is really dead (code > swiped from the god project's process.rb).  So > processes.find_by_cmdline(/mongrel_rails/).each { |p| p.kill } will > kill all your mongrels for sure, even wedged ones. > - The interactive shell now executes in the context of a Rush::Box. > This makes the internal implementation a bit cleaner, but also gives > access to all the methods on Rush::Box.  For example, you can do: bash > "adduser -m joe" rather than Rush::Box.new('localhost').bash "adduser > -m joe" >
Reply all
Reply to author
Forward
0 new messages