forked from adamwiggins/rush
-
Notifications
You must be signed in to change notification settings - Fork 2
Ruby replacement for bash+ssh
schlu/rush
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
= rush -- manage your unix systems with pure Ruby rush is a replacement for the unix shell (bash, zsh, etc) which uses pure Ruby syntax. Grep through files, find and kill processes, copy files - everything you do in the shell, now in Ruby. == Usage Previously if you wanted to count the number of classes in your project, you might use a bash command like: find myproj -name \*.rb | xargs grep '^\s*class' | wc -l In rush, this is: myproj['**/*.rb'].search(/^\s*class/).lines.size How about killing those pesky stray mongrels? Before: kill `ps aux | grep mongrel_rails | grep -v grep | cut -c 10-20` After: processes.filter(:cmdline => /mongrel_rails/).kill But rush is more than just an interactive shell and a library: it can also control any number of remote machines from a single location. Copy files or directories between servers as seamlessly as if it was all local. Example of remote access: local = Rush::Box.new('localhost') remote = Rush::Box.new('my.remote.server.com') local_dir = local['/Users/adam/myproj/'] remote_dir = remote['/home/myproj/app/'] local_dir.copy_to remote_dir remote_dir['**/.svn/'].each { |d| d.destroy } Clustering? Well, if you insist: local_dir = Rush::Box.new('localhost')['/Users/adam/server_logs/'].create servers = %w(www1 www2 www3).map { |n| Rush::Box.new(n) } servers.each { |s| s['/var/log/nginx/access.log'].copy_to local_dir["#{s.host}_access.log"] } == Invoking the shell Run the "rush" binary to enter the interactive shell. == Reference For more details on syntax and commands, see: * Rush::Box * Rush::Entry * Rush::Commands * Rush::File * Rush::Dir * Rush::Process == Meta Created by Adam Wiggins Patches contributed by Chihiro Ito, Gabriel Ware, Michael Schutte, Ricardo Chimal Jr., and Nicholas Schlueter Logo by James Lindenbaum Released under the MIT License: http://www.opensource.org/licenses/mit-license.php http://rush.heroku.com http://groups.google.com/group/ruby-shell
About
Ruby replacement for bash+ssh
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Ruby 100.0%