import argparse already_loaded = False register_count = 0 def plugin_name(filename): return os.path.splitext(os.path.basename(filename))[0] def plugin_init(plugins): global already_loaded already_loaded = plugin_name(__file__) in (plugin_name(p.__name__) for p in plugins) def print_name(opts): print (__file__) def print_bbdir(opts): print (__file__.replace('/lib/recipetool/bbpath.py','')) def print_registered(opts): #global kept_context #print(kept_context.loaded) print ("1") def multiloaded(opts): global already_loaded print("yes" if already_loaded else "no") def register_commands(subparsers): global register_count register_count += 1 def addparser(name, helptxt, func): parser = subparsers.add_parser(name, help=helptxt, formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.set_defaults(func=func) return parser addparser('pluginfile', 'Print the filename of this plugin', print_name) addparser('bbdir', 'Print the BBPATH directory of this plugin', print_bbdir) addparser('count', 'How many times have this plugin been registered.', print_registered) addparser('multiloaded', 'How many times have this plugin been initialized', multiloaded)