Contents

eneko/processrunner

Easily execute system commands from a Swift script or command line tool.

๐Ÿš€ Executing child Processes from Swift scripts and CLI tools

Running child processes in Swift is not hard with Process, but it can be a bit tedious and repetitive.

System makes this task extremely easy. If you are familiar with Ruby scripting (Rakefile, Fastlane, Danger, etc), you will feel like home.

๐Ÿ’ป Automatically redirect output to stdout

import ProcessRunner

try system(command: "echo hello world") // prints "hello world" to stdout

โœ‡ Capture process output

import ProcessRunner

let output = try system(command: "echo hello world", captureOutput: true).standardOutput
print(output) // prints "hello world"

โœ”๏ธ Check if process terminated gracefully

import ProcessRunner

print(try system(command: "echo hello world").success) // prints "true"

|> Easily execute Shell commands with pipes and redirects

import ProcessRunner

try system(shell: "echo hello cat > cat && cat cat | awk '{print $2}'") // prints "cat" to stdout

Installation

Add ProcessRunner to your Package.swift:

import PackageDescription

let package = Package(
    name: "YourPackage",
    dependencies: [
        .package(url: "git@github.com:eneko/ProcessRunner.git", from: "1.0.0"),
    ],
    targets: [
        .target(
            name: "YourTarget",
            dependencies: ["ProcessRunner"]),
    ]
)

๐Ÿ’Œ Contact

Follow and/or contact me on Twitter at @eneko.

๐Ÿ‘ Contributions

If you find an issue, just open a ticket on it. Pull requests are warmly welcome as well.

๐Ÿ‘ฎโ€โ™‚๏ธ License

System is licensed under the MIT license. See LICENSE for more info.

Package Metadata

Repository: eneko/processrunner

Default branch: main

README: README.md