Module: SafeShell
- Defined in:
- lib/safe_shell.rb,
lib/safe_shell/version.rb
Defined Under Namespace
Classes: CommandFailedException
Constant Summary
collapse
- VERSION =
"1.1.0"
Class Method Summary
collapse
Class Method Details
.execute(command, *args) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/safe_shell.rb', line 4
def self.execute(command, *args)
opts = args.last.kind_of?(Hash) ? args.pop : {}
read_end, write_end = IO.pipe
new_stdout = opts[:stdout] ? File.open(opts[:stdout], "w+") : write_end
new_stderr = opts[:stderr] ? File.open(opts[:stderr], "w+") : write_end
env = opts[:env]
opts = {:in => read_end, :out => new_stdout, :err => new_stderr}
pid = if env
spawn(env, command, *(args.map { |a| a.to_s }), opts)
else
spawn(command, *(args.map { |a| a.to_s }), opts)
end
write_end.close
output = read_end.read
Process.waitpid(pid)
read_end.close
output
end
|
.execute!(*args) ⇒ Object
30
31
32
33
34
|
# File 'lib/safe_shell.rb', line 30
def self.execute!(*args)
execute(*args).tap do
raise_command_failed_exception(*args) unless $?.success?
end
end
|
.execute?(*args) ⇒ Boolean
25
26
27
28
|
# File 'lib/safe_shell.rb', line 25
def self.execute?(*args)
execute(*args)
$?.success?
end
|