1#!/usr/bin/env python 2import importlib 3import os 4import sys 5 6 7sys.run_local = os.path.abspath(__file__) 8base = os.path.dirname(sys.run_local) 9src = os.path.join(base, 'src') 10if src not in sys.path: 11 sys.path.insert(0, src) 12sys.resources_location = os.path.join(base, 'resources') 13sys.extensions_location = os.path.join(src, 'calibre', 'plugins') 14entry_point = sys.argv[1] 15del sys.argv[1] 16del src 17del base 18 19for ep in importlib.import_module('calibre.linux').entry_points.values(): 20 for line in ep: 21 q, spec = (x.strip() for x in line.split('=')) 22 if q == entry_point: 23 mod, func = spec.split(':') 24 m = importlib.import_module(mod) 25 sys.exit(getattr(m, func)()) 26raise SystemExit('No entry point named: {}'.format(entry_point)) 27