Попытка клонировать git-репозиторий через Swift встречает нарушение протокола - PullRequest
1 голос
/ 14 апреля 2019

Дарвин-через-Свифт Неофит здесь.

Это продолжение: Введение в процесс () .

Я пытаюсь освоить использование Swift в качестве средства автоматизации процессов уровня Дарвина, таких как клонирование репозитория git, выбор папки и т. Д.

Мне дали шаблон, чтобы попытаться сделать клон (через ссылку выше).
Я создал тестовую ссылку; а также попробовал это в подсказке Дарвина.

Так что я знаю, что это работает.
Но я получаю ошибку протокола через мой скрипт Swift.

Какое средство здесь?
Есть ли определенный протокол, который я должен использовать?

import Foundation

extension Process {

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

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

}


let source = "git clone https://AmourineTech@bitbucket.org/AmourineTech/testbit.git"
let target = "/Users/Ric/workarea"

print("Hello, World!")

try! Process().clone(repo: source, path: target)

print("Done")

Консольный вывод:

Hello, World!
Done
Cloning into '/Users/Ric/workarea'...
fatal: protocol 'git clone https' is not supported
Program ended with exit code: 0

1 Ответ

2 голосов
/ 14 апреля 2019

Кажется, source должен быть URL, а не git clone команда:

let source = "https://AmourineTech@bitbucket.org/AmourineTech/testbit.git"
...