in common.py [0:0]
def clone_repos():
"""Clone Swift and dependencies in parallel.
>>> import tempfile
>>> set_swift_branch('main')
>>> tmpdir = tempfile.mkdtemp()
>>> with DirectoryContext(tmpdir):
... clone_repos()
>>> repos = os.listdir(tmpdir)
>>> check_execute(['rm', '-rf', tmpdir])
0
>>> repos #doctest: +NORMALIZE_WHITESPACE
['llvm-project', 'cmark', 'llbuild', 'ninja', 'swift',
'swift-corelibs-foundation', 'swift-corelibs-libdispatch',
'swift-corelibs-xctest', 'swiftpm']
"""
cpu_count = multiprocessing.cpu_count()
workspace = private_workspace('.')
repos = [
'{} git@github.com:apple/llvm-project.git '
'{}/llvm-project '.format(
branches[swift_branch]['llvm-project'], workspace
),
'{} git@github.com:apple/swift.git {}/swift '.format(
branches[swift_branch]['swift'], workspace
),
'{} git@github.com:apple/swift-cmark.git {}/cmark '.format(
branches[swift_branch]['cmark'], workspace
),
'{} git@github.com:ninja-build/ninja.git {}/ninja '.format(
branches[swift_branch]['ninja'], workspace
),
'{} git@github.com:apple/swift-llbuild.git {}/llbuild '.format(
branches[swift_branch]['llbuild'], workspace
),
'{} git@github.com:apple/swift-package-manager.git '
'{}/swiftpm '.format(
branches[swift_branch]['swiftpm'], workspace
),
'{} git@github.com:apple/swift-corelibs-foundation.git '
'{}/swift-corelibs-foundation '.format(
branches[swift_branch]['swift-corelibs-foundation'], workspace
),
'{} git@github.com:apple/swift-corelibs-libdispatch.git '
'{}/swift-corelibs-libdispatch '.format(
branches[swift_branch]['swift-corelibs-libdispatch'], workspace
),
'{} git@github.com:apple/swift-corelibs-xctest.git '
'{}/swift-corelibs-xctest '.format(
branches[swift_branch]['swift-corelibs-xctest'], workspace
),
'{} git@github.com:apple/swift-argument-parser.git '
'{}/swift-argument-parser '.format(
branches[swift_branch]['swift-argument-parser'], workspace
),
'{} git@github.com:apple/swift-driver.git '
'{}/swift-driver '.format(
branches[swift_branch]['swift-driver'], workspace
),
'{} git@github.com:jpsim/Yams.git '
'{}/yams '.format(
branches[swift_branch]['yams'], workspace
),
'{} git@github.com:apple/swift-tools-support-core.git '
'{}/swift-tools-support-core '.format(
branches[swift_branch]['swift-tools-support-core'], workspace
),
'{} git@github.com:apple/swift-crypto.git '
'{}/swift-crypto '.format(
branches[swift_branch]['swift-crypto'], workspace
),
'{} git@github.com:apple/swift-atomics.git '
'{}/swift-atomics '.format(
branches[swift_branch]['swift-atomics'], workspace
),
'{} git@github.com:apple/swift-collections.git '
'{}/swift-collections '.format(
branches[swift_branch]['swift-collections'], workspace
),
'{} git@github.com:apple/swift-numerics.git '
'{}/swift-numerics '.format(
branches[swift_branch]['swift-numerics'], workspace
),
'{} git@github.com:apple/swift-system.git '
'{}/swift-system '.format(
branches[swift_branch]['swift-system'], workspace
),
]
process0 = subprocess.Popen([
'xargs', '-P%s' % cpu_count, '-n3',
'bash', '-c', 'set -x; git clone -q -b "$0" --recursive "$1" "$2"'
], stdin=subprocess.PIPE)
for repo in repos:
process0.stdin.write(repo)
process0.stdin.close()
assert process0.wait() == 0