mirror of
https://github.com/gechandesu/runcmd.git
synced 2026-03-05 18:11:53 +03:00
Compare commits
3 Commits
v0.2.0
...
04faf33542
| Author | SHA1 | Date | |
|---|---|---|---|
| 04faf33542 | |||
| acd7a0cfc6 | |||
| 4df4fcec47 |
2
cmd.v
2
cmd.v
@@ -272,7 +272,7 @@ pub fn (mut c Command) start() !int {
|
||||
}
|
||||
}
|
||||
|
||||
if c.ctx != none && c.cancel != none {
|
||||
if c.ctx != none {
|
||||
printdbg('${@METHOD}: start watching for context')
|
||||
go c.ctx_watch()
|
||||
}
|
||||
|
||||
@@ -11,16 +11,17 @@ fn main() {
|
||||
mut cmd := runcmd.with_context(ctx, 'sleep', '120')
|
||||
|
||||
// Start a command.
|
||||
started := time.now()
|
||||
println('Start command at ${started}')
|
||||
cmd.start()!
|
||||
started := time.now()
|
||||
println('Command started at ${started}')
|
||||
|
||||
// Wait for command.
|
||||
cmd.wait()!
|
||||
|
||||
// The `sleep 120` command would run for two minutes without a timeout.
|
||||
// But in this example, it will time out after 10 seconds.
|
||||
println('Command finished after ${time.now() - started}')
|
||||
finished := time.now()
|
||||
println('Command finished at ${finished} after ${finished - started}')
|
||||
|
||||
// Since command has been terminated, the state would be: `signal: 15 (SIGTERM)`
|
||||
println('Child state: ${cmd.state}')
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import io.string_reader
|
||||
import strings
|
||||
import runcmd
|
||||
|
||||
@@ -6,12 +5,11 @@ fn main() {
|
||||
input := 'Hello from parent process!'
|
||||
|
||||
// Prepare reader and writer.
|
||||
//
|
||||
// * `reader` reads input from the parent process; it will be copied to the
|
||||
// standard input of the child process.
|
||||
// * `writer` accepts data from the child process; it will be copied from the
|
||||
// standard output of the child process.
|
||||
mut reader := string_reader.StringReader.new(reader: runcmd.buffer(input.bytes()), source: input)
|
||||
mut reader := runcmd.buffer(input.bytes())
|
||||
mut writer := strings.new_builder(4096)
|
||||
|
||||
// Prepare the command.
|
||||
|
||||
Reference in New Issue
Block a user