Socket
Book a DemoInstallSign in
Socket

rush

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rush

0.6.8
bundlerRubygems
Version published
Maintainers
1
Created
Source

= rush -- manage your unix systems with pure Ruby

rush is a unix integration library and an interactive shell which uses pure Ruby syntax. Walk directory trees; create, copy, search, and destroy files; find and kill processes - everything you'd normally do with shell commands, now in the strict and elegant world of Ruby.

== Usage

Count the number of classes in your project using bash:

find myproj -name *.rb | xargs grep '^\s*class' | wc -l

In rush, this is:

myproj['**/.rb'].search(/^\sclass/).lines.size

Pesky stray mongrels? In bash:

kill ps aux | grep mongrel_rails | grep -v grep | cut -c 10-20

In rush:

processes.filter(:cmdline => /mongrel_rails/).kill

== As a library

require 'rubygems' require 'rush'

file = Rush['/tmp/myfile'] file.write "hello" puts file.contents file.destroy

puts Rush.my_process.pid puts Rush.processes.size puts Rush.bash("echo SHELL COMMAND | tr A-Z a-z") puts Rush.launch_dir['*.rb'].search(/Rush/).entries.inspect

== Invoking the shell

Run the "rush" binary to enter the interactive shell.

== Remote access and clustering

rush can 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:

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"] }

== Reference

For more details on syntax and commands, see:

  • Rush
  • Rush::Entry
  • Rush::File
  • Rush::Dir
  • Rush::Commands
  • Rush::Box
  • Rush::Process

== Meta

Created by Adam Wiggins

Patches contributed by Chihiro Ito, Gabriel Ware, Michael Schutte, Ricardo Chimal Jr., and Nicholas Schlueter, Pedro Belo, and Martin Kuehl

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

FAQs

Package last updated on 14 Mar 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.