Запуск сценария оболочки из Swift / MacOS - PullRequest
0 голосов
/ 16 января 2020

В прошлом я мог успешно запускать сценарии оболочки с помощью этой функции:

typealias runShellClosure = (_ jsonString:String) -> Void

func runShell(_ command: String, completion: runShellClosure) {
        let task = Process()
        task.launchPath = "/bin/zsh"
        task.arguments = ["-c", command]

        let pipe = Pipe()
        task.standardOutput = pipe
        task.launch()

        let data = pipe.fileHandleForReading.readDataToEndOfFile()
        let output: String = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String

        completion(output)
    }

Сегодня я установил YQ (используя Homebrew) - YQ преобразует файлы YAML в JSON.

Запустил тестирование в Терминале:

yq r -j ~/Desktop/xxxxxxx/swagger/yml/up-api.yaml

и получил ожидаемые результаты. В моем приложении я передаю ту же команду функции runShell:

Я получаю ошибку command not found.

Не уверен, что я делаю не так. Я только что переключился на Каталину, но переключение оболочки на Bash вернуло те же результаты.

Спасибо

Редактировать: я могу запустить эту команду:

ls ~/Desktop/Xandr/swagger/yml/

и получить ожидаемые результаты. Также песочница отключена.

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