diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/devtool | 5 | ||||
-rw-r--r-- | scripts/lib/devtool/standard.py | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/scripts/devtool b/scripts/devtool index a651d8f213..b4bfbb8329 100755 --- a/scripts/devtool +++ b/scripts/devtool @@ -117,12 +117,13 @@ def read_workspace(): for line in f: res = externalsrc_re.match(line.rstrip()) if res: - pn = res.group(2) or os.path.splitext(os.path.basename(fn))[0].split('_')[0] + recipepn = os.path.splitext(os.path.basename(fn))[0].split('_')[0] + pn = res.group(2) or recipepn # Find the recipe file within the workspace, if any bbfile = os.path.basename(fn).replace('.bbappend', '.bb').replace('%', '*') recipefile = glob.glob(os.path.join(config.workspace_path, 'recipes', - pn, + recipepn, bbfile)) if recipefile: recipefile = recipefile[0] diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 26187a0c41..f29d8cbb68 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -1744,6 +1744,7 @@ def status(args, config, basepath, workspace): def _reset(recipes, no_clean, config, basepath, workspace): """Reset one or more recipes""" + import oe.path def clean_preferred_provider(pn, layerconf_path): """Remove PREFERRED_PROVIDER from layer.conf'""" @@ -1802,7 +1803,10 @@ def _reset(recipes, no_clean, config, basepath, workspace): preservedir(os.path.join(root, dn)) os.rmdir(origdir) - preservedir(os.path.join(config.workspace_path, 'recipes', pn)) + recipefile = workspace[pn]['recipefile'] + if recipefile and oe.path.is_path_parent(config.workspace_path, recipefile): + # This should always be true if recipefile is set, but just in case + preservedir(os.path.dirname(recipefile)) # We don't automatically create this dir next to appends, but the user can preservedir(os.path.join(config.workspace_path, 'appends', pn)) |