diff options
| author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-12-22 17:03:06 +1300 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-22 16:44:03 +0000 | 
| commit | 67a28109a1ee1383d1b17a8dafa4fe510948238b (patch) | |
| tree | 9322607b2be467eb6b2b9cf3b17329615ff89f82 | |
| parent | 2103fa9dc7faf2189c8b426b87fb9d421a9983ac (diff) | |
| download | openembedded-core-67a28109a1ee1383d1b17a8dafa4fe510948238b.tar.gz openembedded-core-67a28109a1ee1383d1b17a8dafa4fe510948238b.tar.bz2 openembedded-core-67a28109a1ee1383d1b17a8dafa4fe510948238b.zip | |
devtool: split out function for naming bbappend
We're repeating this in a couple of places, so we might as well have a
function to do it.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | scripts/lib/devtool/__init__.py | 15 | ||||
| -rw-r--r-- | scripts/lib/devtool/standard.py | 18 | 
2 files changed, 20 insertions, 13 deletions
| diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index e617d60405..7f16e17935 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py @@ -22,6 +22,7 @@ import os  import sys  import subprocess  import logging +import re  logger = logging.getLogger('devtool') @@ -199,3 +200,17 @@ def setup_git_repo(repodir, version, devbranch, basetag='devtool-base'):      bb.process.run('git checkout -b %s' % devbranch, cwd=repodir)      bb.process.run('git tag -f %s' % basetag, cwd=repodir) + +def recipe_to_append(recipefile, config, wildcard=False): +    """ +    Convert a recipe file to a bbappend file path within the workspace. +    NOTE: if the bbappend already exists, you should be using +    workspace[args.recipename]['bbappend'] instead of calling this +    function. +    """ +    appendname = os.path.splitext(os.path.basename(recipefile))[0] +    if wildcard: +        appendname = re.sub(r'_.*', '_%', appendname) +    appendpath = os.path.join(config.workspace_path, 'appends') +    appendfile = os.path.join(appendpath, appendname + '.bbappend') +    return appendfile diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 57175a449a..0103d936b5 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -26,7 +26,7 @@ import argparse  import scriptutils  import errno  from collections import OrderedDict -from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, DevtoolError +from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, DevtoolError  from devtool import parse_recipe  logger = logging.getLogger('devtool') @@ -64,10 +64,6 @@ def add(args, config, basepath, workspace):          raise DevtoolError("Specified source tree %s could not be found" %                             srctree) -    appendpath = os.path.join(config.workspace_path, 'appends') -    if not os.path.exists(appendpath): -        os.makedirs(appendpath) -      recipedir = os.path.join(config.workspace_path, 'recipes', args.recipename)      bb.utils.mkdirhier(recipedir)      rfv = None @@ -121,7 +117,8 @@ def add(args, config, basepath, workspace):      if not rd:          return 1 -    appendfile = os.path.join(appendpath, '%s.bbappend' % bp) +    appendfile = recipe_to_append(recipefile, config) +    bb.utils.mkdirhier(os.path.dirname(appendfile))      with open(appendfile, 'w') as f:          f.write('inherit externalsrc\n')          f.write('EXTERNALSRC = "%s"\n' % srctree) @@ -584,11 +581,7 @@ def modify(args, config, basepath, workspace):                             pn)      recipefile = rd.getVar('FILE', True) -    appendname = os.path.splitext(os.path.basename(recipefile))[0] -    if args.wildcard: -        appendname = re.sub(r'_.*', '_%', appendname) -    appendpath = os.path.join(config.workspace_path, 'appends') -    appendfile = os.path.join(appendpath, appendname + '.bbappend') +    appendfile = recipe_to_append(recipefile, config, args.wildcard)      if os.path.exists(appendfile):          raise DevtoolError("Another variant of recipe %s is already in your "                             "workspace (only one variant of a recipe can " @@ -632,8 +625,7 @@ def modify(args, config, basepath, workspace):          srcsubdir = os.path.relpath(s, workdir).split(os.sep, 1)[1]          srctree = os.path.join(srctree, srcsubdir) -    if not os.path.exists(appendpath): -        os.makedirs(appendpath) +    bb.utils.mkdirhier(os.path.dirname(appendfile))      with open(appendfile, 'w') as f:          f.write('FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n')          # Local files can be modified/tracked in separate subdir under srctree | 
