def exec_legacy(arg):
try:
tmp = arg.split(":")
if len(tmp) < 2:
raise AssertionError("Error: incorrect service path: " + arg)
app_name = tmp[0]
app_path = tmp[1]
# print "Service: app_name=",app_name," app_path=",app_path
setup_logger(app_name)
t = threading.Thread(target=alive_worker, args=(30.0,))
t.start()
app_dir = os.path.join(mi2app_utils.get_files_dir(), "app")
# add this dir to module search path
sys.path.append(os.path.join(app_dir, app_path))
app_file = os.path.join(app_dir, app_path, "main.mi2app")
Logger.info("Phone model: " + mi2app_utils.get_phone_model())
Logger.info("Running app: " + app_file)
# print arg,app_dir,os.path.join(app_dir, arg)
namespace = {"service_context": mi2app_utils.get_service_context()}
# Load configurations as global variables
config = ConfigParser()
config.read('/sdcard/.mobileinsight.ini')
ii = arg.rfind('/')
section_name = arg[ii + 1:]
plugin_config = {}
if section_name in config.sections():
config_options = config.options(section_name)
for item in config_options:
plugin_config[item] = config.get(section_name, item)
namespace["plugin_config"] = plugin_config
gps_provider = GpsListener(on_gps)
gps_provider.start()
execfile(app_file, namespace)
# print app_name, "stops normally"
except Exception as e:
# Print traceback logs to analysis
tb_exc = traceback.format_exc()
Logger.error(tb_exc)
l = logging.getLogger("mobileinsight_logger")
l.error(tb_exc)
sys.exit(tb_exc)
评论列表
文章目录