Merge branch ‘develop’
Execute shell command and get output. Simple and robust.
Table of Contents
Add Work to Package.swift.
Package.swift
dependencies: [ .package(url: "https://github.com/flintbox/Work", from: "0.1.0") ]
Work is subclass of Operation wrapping Process object.
import Foundation import Work // Create shell commands. let echo1 = Work( command: "echo 1-1; sleep 1; echo 1-2; sleep 1; echo 1-3", standardOutputHandler: { output in print("echo1 says: \(output)") } ) let echo2 = Work(command: "echo 2-1; sleep 1; echo 2-2; sleep 1; echo 2-3") // Start them synchronously. echo1.start() echo2.start() // Print standard output of echo2. print(echo2.standardOutput)
echo1 says: 1-1 echo1 says: 1-2 echo1 says: 1-3 2-1 2-2 2-3
import Foundation import Work // Create shell commands. let echo1 = Work(command: "echo 1-1; sleep 1; echo 1-2; sleep 1; echo 1-3") echo1.standardOutputHandler = { output in print("echo1 says: \(output)") } echo1.completion = { result in switch result { case .success(_): print("echo1 success") case .failure(_, _): print("echo1 failure") } } let echo2 = Work( command: "echo 2-1; sleep 1; echo 2-2; sleep 3; echo 2-3", standardOutputHandler: { output in print("echo2 says: \(output)") }, completion: { result in switch result { case .success(_): print("echo2 success") case .failure(_, _): print("echo2 failure") } } ) // Start them asynchronously. OperationQueue().addOperations([echo1, echo2], waitUntilFinished: true)
echo2 says: 2-1 echo1 says: 1-1 echo2 says: 2-2 echo1 says: 1-2 echo1 says: 1-3 echo1 success echo2 says: 2-3 echo2 success
If you have good idea or suggestion? Please, don’t hesitate to open a pull request or send me an email.
Hope you enjoy building command line tool with Work!
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Work
Execute shell command and get output. Simple and robust.
Table of Contents
Installation
Add Work to
Package.swift
.Work
Work is subclass of Operation wrapping Process object.
Example
Synchronous
main.swift
Output
Asynchronous
main.swift
Output
Contribute
If you have good idea or suggestion? Please, don’t hesitate to open a pull request or send me an email.
Hope you enjoy building command line tool with Work!