Crystal Run
A Crystal library for running commands in reusable contexts.
Installation
Add this to your application's shard.yml
:
dependencies:
run:
github: mosop/run
Code Samples
Smiley
cmd = Run::Command.new("echo", [":)"])
cmd.run.wait # => prints ":)"
Additional Arguments
cmd = Run.command("echo", [":)"])
%w(hello goodbye).each do |i|
cmd.run(args: [i]).wait
end
This prints:
:) hello
:) goodbye
Over and Over
cmd = Run.command("echo", [":)"])
100.times do
cmd.run.wait
end
This prints 100 of :).
Multiple at Once
cg = Run.group
100.times do
cg.command "echo", [":)"]
end
cg.run.wait
This prints 100 of :) too.
Nested Contexts
cg = Run.group(chdir: "path")
cg.command "pwd"
cg.command "pwd", chdir: "to"
cg.command "pwd", chdir: ".."
cg.run.wait
If the current directory is /Users/mosop, this code prints:
/Users/mosop/path
/Users/mosop/path/to
/Users/mosop
Parallel
cg = Run.group
cg.command "wget", %w(http://mosop.rocks)
cg.command "wget", %w(http://mosop.yoga)
cg.command "wget", %w(http://mosop.ninja)
process_group = cg.run(parallel: true)
# do other things
process_group.wait
Usage
require "run"
And see Code Samples, Wiki and API Document!
Versioning Policy
See Wiki.
Release Notes
See Releases.