Где я могу получить информацию о работе с Swift Process ()? - PullRequest
0 голосов
/ 12 апреля 2019

В частности, я бы хотел, чтобы правильный синтаксис запускал git clone через Swift и выполнял различные работы на уровне Дарвина, такие как запуск сжатия tar и т. Д.

Где я могу получить некоторую информацию об использовании Process()?

По сути, я хочу сделать что-то вроде этого: Process (). Git clone ... Process (). Tar ....

Я хочу удобно работать сСлой Дарвина для элементарных вещей.

Было бы неплохо сделать это синхронно, чтобы продолжить обработку после того, как слой unix выполнил свою задачу.

1 Ответ

1 голос
/ 12 апреля 2019

Вы можете узнать больше о Process из Документации Apple или посмотреть исходный код версии с открытым исходным кодом на 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")

Насколько я знаю, нет способа передать аргументы процессу, кромев виде строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...