该模块将 Unix 命令行工具公开为 Swift 5 的 @dynamicCallable 函数
一些警告:这只是一个演示。它应该可以正常工作,但为了错误处理和 Swift 的完美性,你可能希望以不同的方式处理 fork 进程 🤓(顺便说一句:欢迎提交 PR!)
此博客文章的一部分:@dynamicCallable:将 Unix 工具作为 Swift 函数。
常规 Swift Package Manager 设置流程
mkdir ShellConsumerTest && cd ShellConsumerTest
swift package init --type executable
示例 main.swift
import Shell
print(shell.host("zeezide.de"))
示例 Package.swift
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "ShellConsumerTest",
dependencies: [
.package(url: "https://github.com/AlwaysRightInstitute/Shell.git",
from: "0.1.0"),
],
targets: [
.target(name: "ShellConsumerTest", dependencies: [ "Shell" ]),
]
)
请记住在两个地方添加依赖项。 WET (Write Everything Twice) 是最好的!
swift run
和swift test
会将$PATH
仅修补为/usr/bin
。你可能需要直接运行二进制文件,以使查找能够正常工作。
为了使其工作,你需要安装 Swift 5+。