A solid subprocess library for ruby, inspired by python's.
The recommended way of installing subprocess is through Rubygems:
$ gem install subprocess
You can also build subprocess from source by running:
$ gem build subprocess.gemspec
Full documentation is on RubyDoc. A few examples:
require 'subprocess'Check user's animal allegiances:
begin
Subprocess.check_call(['grep', '-q', 'llamas', '~/favorite_animals'])
rescue Subprocess::NonZeroExit => e
puts e.message
puts "Why aren't llamas one of your favorite animals?"
endParse the output of uptime(1) to find the system's load:
system_load = Subprocess.check_output(['uptime']).split(' ').last(3)Send mail to your friends with sendmail(1):
Subprocess.check_call(%W{sendmail -t}, :stdin => Subprocess::PIPE) do |p|
p.communicate <<-EMAIL
From: alpaca@example.com
To: llama@example.com
Subject: I am so fluffy.
SO FLUFFY!
http://upload.wikimedia.org/wikipedia/commons/3/3e/Unshorn_alpaca_grazing.jpg
EMAIL
endMost of the documentation for Python's subprocess module applies
equally well to this gem as well. While there are a few places when our
semantics differs from Python's, users of the Python module should largely feel
at home using subprocess. We have attempted to document all of the
differences, but if we have missed something, please file an issue.
Steps to release a new version:
# Work directly on master
git checkout master
# -- edit version in lib/subprocess/version.rb --
# Update RBI files
bundle exec rake sord
# Subsequent commands reference the version
VERSION=1.5.5
git commit -am "Bump version to $VERSION"
git tag "v$VERSION"
git push origin master --tags
bundle exec rake publishIf you get errors, ask someone to add you to bindings/rubygems-api-key in
Vault or ask someone who already has permissions. See http://go/password-vault
Many thanks to Bram Swenson, the author of the old subprocess gem, for graciously letting us use the name.
