1d3d876f222c8583aa31386dc00f55e7cd844668
Returns a writable stream and a readable stream. What you write to the 1st one can be read from the 2nd one. Make sure to call closeStream() on the writable stream before you call read() on the readable one.
SwiftShell
A Swift module for shell scripting.
Usage
Pipe several commands together
#!/usr/bin/env swiftshell
import SwiftShell
run("echo this is streamed") |> run("wc -w") |> standardoutput
Read a file line by line
#!/usr/bin/env swiftshell
import SwiftShell
for line in open("../shorttext.txt").lines() {
// Do something with each line
}
Print standard input with line numbers
#!/usr/bin/env swiftshell
import SwiftShell
var i = 1
for line in standardinput.lines() {
print("line \(i++): ")
println(line)
}
Launch with e.g. ls | print_linenumbers.swift
List all executables in PATH
#!/usr/bin/env swiftshell
import SwiftShell
let directories = environment["PATH"]!.split(":")
for directory in directories {
run("find \"\(directory)\" -type f -perm +ugo+x -print") |> standardoutput
}
Installation
-
In the Terminal, go to where you want to download SwiftShell.
-
Run
git clone https://github.com/kareman/SwiftShell.git cd SwiftShell -
Copy/link
Div/swiftshellto your bin folder or anywhere in your PATH. -
To install the framework, either:
- run
xcodebuild installfrom the project's root folder. This will install the SwiftShell framework in ~/Library/Frameworks. - or run
xcodebuildand copy the resulting framework from the build folder to your library folder of choice. If that is not "~/Library/Frameworks", "/Library/Frameworks" or a folder mentioned in the $DYLD_FRAMEWORK_PATH environment variable then you need to add your folder to $DYLD_FRAMEWORK_PATH.
- run
LICENSE
This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
If you want to use this project together with a different project with an incompatible license, send a message on GitHub and we will see what we can do.
Description
Languages
Swift
96.1%
Shell
2.9%
Ruby
1%