在哪里可以获得有关使用Swift Process()的信息?

时间:2019-04-12 20:23:19

标签: swift macos process

具体来说,我希望正确的语法通过Swift运行git clone并完成各种达尔文层的工作,例如运行tar压缩等。

在哪里可以获得Process()的使用信息?

基本上,我想做这样的事情: Process()。git克隆... Process()。tar ....

我想方便地与Darwin层一起做基本的事情。

最好同步执行此操作,以便在unix层完成其任务后继续处理。

1 个答案:

答案 0 :(得分:1)

您可以从Apple's Documentation中找到有关Process的更多信息,也可以在GitHub上查看开放源代码版本的源代码。

我写了一个简短的示例,说明如何使用Process中要查找的语法编写一些代码。您可以更改该函数接受参数的方式,以便它接受字符串数组而不是特定的命名参数。

extension Process {

    private static let gitExecURL = URL(fileURLWithPath: "/usr/bin/git")

    func clone(repo: String, path: String) throws {
        executableURL = Process.gitExecURL
        arguments = ["clone", repo, path]
        try run()
    }

}

try! Process().clone(repo: "git@github.com:user/repo.git", path: "path/to/repo")

据我所知,除了字符串以外,没有其他方法可以将参数传递给进程。