For subcommands that don't actually involve the workspace, don't
auto-create the workspace.

Signed-off-by: Paul Eggleton <[email protected]>
---
 meta/lib/oeqa/selftest/devtool.py | 8 ++++----
 scripts/devtool                   | 4 ++--
 scripts/lib/devtool/search.py     | 2 +-
 scripts/lib/devtool/standard.py   | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/meta/lib/oeqa/selftest/devtool.py 
b/meta/lib/oeqa/selftest/devtool.py
index dcdef5a..0a44ae7 100644
--- a/meta/lib/oeqa/selftest/devtool.py
+++ b/meta/lib/oeqa/selftest/devtool.py
@@ -823,10 +823,10 @@ class DevtoolTests(DevtoolBase):
         tempdir = tempfile.mkdtemp(prefix='devtoolqa')
         # Try devtool extract
         self.track_for_cleanup(tempdir)
-        self.track_for_cleanup(self.workspacedir)
-        self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
         result = runCmd('devtool extract remake %s' % tempdir)
         self.assertTrue(os.path.exists(os.path.join(tempdir, 'Makefile.am')), 
'Extracted source could not be found')
+        # devtool extract shouldn't create the workspace
+        self.assertFalse(os.path.exists(self.workspacedir))
         self._check_src_repo(tempdir)
 
     @testcase(1379)
@@ -834,10 +834,10 @@ class DevtoolTests(DevtoolBase):
         tempdir = tempfile.mkdtemp(prefix='devtoolqa')
         # Try devtool extract
         self.track_for_cleanup(tempdir)
-        self.track_for_cleanup(self.workspacedir)
-        self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
         result = runCmd('devtool extract virtual/libx11 %s' % tempdir)
         self.assertTrue(os.path.exists(os.path.join(tempdir, 'Makefile.am')), 
'Extracted source could not be found')
+        # devtool extract shouldn't create the workspace
+        self.assertFalse(os.path.exists(self.workspacedir))
         self._check_src_repo(tempdir)
 
     @testcase(1168)
diff --git a/scripts/devtool b/scripts/devtool
index e4d9db3..2a5a3d4 100755
--- a/scripts/devtool
+++ b/scripts/devtool
@@ -261,7 +261,7 @@ def main():
                                                         description='Sets up a 
new workspace. NOTE: other devtool subcommands will create a workspace 
automatically as needed, so you only need to use %(prog)s if you want to 
specify where the workspace should be located.')
         parser_create_workspace.add_argument('layerpath', nargs='?', 
help='Path in which the workspace layer should be created')
         parser_create_workspace.add_argument('--create-only', 
action="store_true", help='Only create the workspace layer, do not alter 
configuration')
-        parser_create_workspace.set_defaults(func=create_workspace)
+        parser_create_workspace.set_defaults(func=create_workspace, 
no_workspace=True)
 
     for plugin in plugins:
         if hasattr(plugin, 'register_commands'):
@@ -269,7 +269,7 @@ def main():
 
     args = parser.parse_args(unparsed_args, namespace=global_args)
 
-    if args.subparser_name != 'create-workspace':
+    if not getattr(args, 'no_workspace', False):
         read_workspace()
 
     try:
diff --git a/scripts/lib/devtool/search.py b/scripts/lib/devtool/search.py
index c2f420c..1c8eaff 100644
--- a/scripts/lib/devtool/search.py
+++ b/scripts/lib/devtool/search.py
@@ -77,4 +77,4 @@ def register_commands(subparsers, context):
     parser_search = subparsers.add_parser('search', help='Search available 
recipes',
                                             description='Searches for 
available target recipes. Matches on recipe name, package name, description and 
installed files, and prints the recipe name on match.')
     parser_search.add_argument('keyword', help='Keyword to search for (regular 
expression syntax allowed)')
-    parser_search.set_defaults(func=search)
+    parser_search.set_defaults(func=search, no_workspace=True)
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index ace3a4b..bc92456 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -1117,7 +1117,7 @@ def register_commands(subparsers, context):
     parser_extract.add_argument('srctree', help='Path to where to extract the 
source tree')
     parser_extract.add_argument('--branch', '-b', default="devtool", 
help='Name for development branch to checkout')
     parser_extract.add_argument('--keep-temp', action="store_true", help='Keep 
temporary directory (for debugging)')
-    parser_extract.set_defaults(func=extract)
+    parser_extract.set_defaults(func=extract, no_workspace=True)
 
     parser_update_recipe = subparsers.add_parser('update-recipe', help='Apply 
changes from external source tree to recipe',
                                        description='Applies changes from 
external source tree to a recipe (updating/adding/removing patches as 
necessary, or by updating SRCREV)')
-- 
2.1.0

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to