yocto-autobuilder-helper/scripts/shared-repo-unpack
Richard Purdie b7cf6d8209 utils: Allow customisation using ABHELPER_JSON from the environment
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>
2018-06-20 23:16:10 +01:00

1.8 KiB
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 " % 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])