summaryrefslogtreecommitdiffstats
path: root/scripts/recipetool
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-08-05 15:48:00 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-03 23:45:54 +0100
commite616beba1c85e31246d1c798191b194d168b3489 (patch)
tree5b9d19e7c4a7caeb72f1bb9da4a2b221cfb1da96 /scripts/recipetool
parentf2854c67ce963211f27223bd1194420621694bc2 (diff)
downloadpoky-e616beba1c85e31246d1c798191b194d168b3489.tar.gz
scripts: ensure tinfoil is shut down correctly
We should always shut down tinfoil when we're finished with it, either by explicitly calling the shutdown() method or by using it as a context manager ("with ..."). (From OE-Core rev: 5ec6d9ef309b841cdcbf1d14ac678d106d5d888a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/recipetool')
-rwxr-xr-xscripts/recipetool63
1 files changed, 33 insertions, 30 deletions
diff --git a/scripts/recipetool b/scripts/recipetool
index 17233d4ef0..1052cd2b22 100755
--- a/scripts/recipetool
+++ b/scripts/recipetool
@@ -77,37 +77,40 @@ def main():
77 scriptutils.logger_setup_color(logger, global_args.color) 77 scriptutils.logger_setup_color(logger, global_args.color)
78 78
79 tinfoil = tinfoil_init(False) 79 tinfoil = tinfoil_init(False)
80 for path in ([scripts_path] +
81 tinfoil.config_data.getVar('BBPATH', True).split(':')):
82 pluginpath = os.path.join(path, 'lib', 'recipetool')
83 scriptutils.load_plugins(logger, plugins, pluginpath)
84
85 registered = False
86 for plugin in plugins:
87 if hasattr(plugin, 'register_commands'):
88 registered = True
89 plugin.register_commands(subparsers)
90 elif hasattr(plugin, 'register_command'):
91 # Legacy function name
92 registered = True
93 plugin.register_command(subparsers)
94 if hasattr(plugin, 'tinfoil_init'):
95 plugin.tinfoil_init(tinfoil)
96
97 if not registered:
98 logger.error("No commands registered - missing plugins?")
99 sys.exit(1)
100
101 args = parser.parse_args(unparsed_args, namespace=global_args)
102
103 try: 80 try:
104 if getattr(args, 'parserecipes', False): 81 for path in ([scripts_path] +
105 tinfoil.config_data.disableTracking() 82 tinfoil.config_data.getVar('BBPATH', True).split(':')):
106 tinfoil.parseRecipes() 83 pluginpath = os.path.join(path, 'lib', 'recipetool')
107 tinfoil.config_data.enableTracking() 84 scriptutils.load_plugins(logger, plugins, pluginpath)
108 ret = args.func(args) 85
109 except bb.BBHandledException: 86 registered = False
110 ret = 1 87 for plugin in plugins:
88 if hasattr(plugin, 'register_commands'):
89 registered = True
90 plugin.register_commands(subparsers)
91 elif hasattr(plugin, 'register_command'):
92 # Legacy function name
93 registered = True
94 plugin.register_command(subparsers)
95 if hasattr(plugin, 'tinfoil_init'):
96 plugin.tinfoil_init(tinfoil)
97
98 if not registered:
99 logger.error("No commands registered - missing plugins?")
100 sys.exit(1)
101
102 args = parser.parse_args(unparsed_args, namespace=global_args)
103
104 try:
105 if getattr(args, 'parserecipes', False):
106 tinfoil.config_data.disableTracking()
107 tinfoil.parseRecipes()
108 tinfoil.config_data.enableTracking()
109 ret = args.func(args)
110 except bb.BBHandledException:
111 ret = 1
112 finally:
113 tinfoil.shutdown()
111 114
112 return ret 115 return ret
113 116