Запуск сценария через процесс - не удается найти сценарий - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь запустить скрипт из приложения Mac OS / X, используя Swift 5, но при запуске процесса не удается найти скрипт (и я уверен, что мне не хватает чего-то очевидного, но я не вижу что)

Я попытался передать только имя сценария, полный URL-адрес сценария, а также файл task.currentDirectoryURL завершен и не завершен; но все равно не может найти скрипт

public func run() -> Bool {

    let task = Process()
    // scriptURL    URL         "file:///Users/phil/Documents/My%20Scripts/"
    // name         String      "myscript"
    task.executableURL = scriptURL.appendingPathComponent(name).appendingPathExtension("sh")
    task.currentDirectoryURL = scriptURL
    task.arguments = []
    let outputPipe = Pipe()
    let errorPipe = Pipe()

    task.standardOutput = outputPipe
    task.standardError = errorPipe

    do {
        try task.run()
        let outputData = outputPipe.fileHandleForReading.readDataToEndOfFile()
        print(String(decoding: outputData, as: UTF8.self))
        return true
    } catch let error as NSError {
        print(error.localizedDescription)
        let handle = errorPipe.fileHandleForReading
        let errorData = handle.readDataToEndOfFile()
        print(String(decoding: errorData, as: UTF8.self))
        return false
    }
}

Когда вызывается task.run (), он перехватывается Catch и NSError возвращает «Файл« myscript.sh »не существует.», Но он существует в папке ScriptsURL.

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