mirror of
git://git.yoctoproject.org/yocto-autobuilder-helper.git
synced 2025-07-19 20:59:02 +02:00

Usage is documented in README and an example, local-example.json is included. Also clean up the parameter to loadconfig() as its actually not needed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
62 lines
1.8 KiB
Python
Executable File
62 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Unpack a shared directory of repos to the autobuilder working directory
|
|
#
|
|
# Called with $1 - The json file containing the repositories to use
|
|
# $2 - The shared directory where the repos are to be transferred from (can be 'None')
|
|
# $3 - The autobuilder working directory
|
|
# $4 - The target to filter the repos to
|
|
# $5 - Directory to publish artefacts to
|
|
#
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import errno
|
|
import time
|
|
import random
|
|
|
|
import utils
|
|
|
|
if len(sys.argv) != 6:
|
|
print("Incorrect number of parameters, please call as %s repo.json <shared-sources-dir> <autobuilder-workdir> <target> <publish-dir>" % sys.argv[0])
|
|
sys.exit(1)
|
|
|
|
repojson = sys.argv[1]
|
|
shared = sys.argv[2]
|
|
targetdir = sys.argv[3]
|
|
target = sys.argv[4]
|
|
publish = None
|
|
if sys.argv[5] != "None":
|
|
publish = sys.argv[5]
|
|
|
|
|
|
scriptsdir = os.path.dirname(os.path.realpath(__file__))
|
|
ourconfig = utils.loadconfig()
|
|
|
|
stashdir = utils.getconfig("REPO_STASH_DIR", ourconfig)
|
|
|
|
needrepos = utils.getconfigvar("NEEDREPOS", ourconfig, target, None)
|
|
|
|
with open(repojson) as f:
|
|
repos = json.load(f)
|
|
|
|
targetsubdir = targetdir + "/repos"
|
|
|
|
for repo in sorted(repos.keys()):
|
|
if repo not in needrepos:
|
|
continue
|
|
targetrepodir = "%s/%s" % (targetsubdir, repo)
|
|
if shared != "None":
|
|
utils.printheader("Copying in repo %s" % repo)
|
|
utils.mkdir(targetrepodir)
|
|
subprocess.check_call(["rsync", "-a", "%s/%s" % (shared, repo), targetsubdir])
|
|
else:
|
|
utils.printheader("Fetching repo %s" % repo)
|
|
utils.fetchgitrepo(targetsubdir, repo, repos[repo], stashdir)
|
|
if publish:
|
|
utils.publishrepo(shared, repo, publish)
|
|
|
|
subprocess.check_call([scriptsdir + "/layer-config", targetdir, target])
|