kopia lustrzana https://github.com/inkstitch/inkstitch
37 wiersze
735 B
Python
37 wiersze
735 B
Python
|
import sys
|
||
|
import traceback
|
||
|
from argparse import ArgumentParser
|
||
|
from inkstitch.utils import save_stderr, restore_stderr
|
||
|
from inkstitch import extensions
|
||
|
|
||
|
|
||
|
def get_extension():
|
||
|
parser = ArgumentParser()
|
||
|
parser.add_argument("--extension")
|
||
|
args, extras = parser.parse_known_args()
|
||
|
|
||
|
return args.extension
|
||
|
|
||
|
|
||
|
extension_name = get_extension()
|
||
|
extension_class = getattr(extensions, extension_name.capitalize())
|
||
|
extension = extension_class()
|
||
|
|
||
|
exception = None
|
||
|
|
||
|
save_stderr()
|
||
|
try:
|
||
|
extension.affect()
|
||
|
except (SystemExit, KeyboardInterrupt):
|
||
|
raise
|
||
|
except Exception:
|
||
|
exception = traceback.format_exc()
|
||
|
finally:
|
||
|
restore_stderr()
|
||
|
|
||
|
if exception:
|
||
|
print >> sys.stderr, exception
|
||
|
sys.exit(1)
|
||
|
else:
|
||
|
sys.exit(0)
|