Running Commands - mosop/run GitHub Wiki
To run commands, create an instance of Run::Command or Run::CommandGroup and call its #run method.
Run::Command is for running a single command.
Run::Command.new("echo", [":)"]).run # => prints ":)"
Run::CommandGroup is for running multiple commands.
cg = Run::CommandGroup.new
[":)", ":P", ":X"].each do |face|
cg.command "echo", [face]
end
cg.run # prints these faces
Parallel Processing
Child commands in a command group are run sequentially as default. To run them in parallel, use the parallel context attribute.
cg = Run::CommandGroup.new
cg.command "sleep", ["100"]
cg.command "echo", ["leave you, sleepy"]
cg.run parallel: true
Note: The parallel attribute is not inherited from the parent context.
cg = Run::CommandGroup.new(parallel: true) do |g|
g.group do
cmd "sleep", %w(1)
cmd "sleep", %w(1)
cmd "sleep", %w(1)
end
end
cg.run.wait
This waits for 3 seconds not 1.