| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | from __future__ import absolute_import |
| | from __future__ import print_function |
| | from __future__ import unicode_literals |
| | from argparse import ArgumentParser |
| | import gettext |
| | import logging |
| | import os |
| | import sys |
| |
|
| | from . import __version__ |
| | from .cli import init_logger |
| | from .dataio import ParseError |
| | from .errors import InvalidHwp5FileError |
| |
|
| |
|
| | PY3 = sys.version_info.major == 3 |
| | logger = logging.getLogger(__name__) |
| |
|
| | locale_dir = os.path.join(os.path.dirname(__file__), 'locale') |
| | locale_dir = os.path.abspath(locale_dir) |
| | t = gettext.translation('hwp5proc', locale_dir, fallback=True) |
| | _ = t.gettext |
| |
|
| |
|
| | program = 'hwp5proc (pyhwp) {version}'.format(version=__version__) |
| |
|
| | copyright = 'Copyright (C) 2010-2023 mete0r <https://github.com/mete0r>' |
| |
|
| | license = _('''License AGPLv3+: GNU Affero GPL version 3 or any later |
| | <http://gnu.org/licenses/agpl.txt>. |
| | This is free software: you are free to change and redistribute it. |
| | There is NO WARRANTY, to the extent permitted by law.''') |
| |
|
| | disclosure = _('''Disclosure: This program has been developed in accordance with a public |
| | document named "HWP Binary Specification 1.1" published by Hancom Inc. |
| | <http://www.hancom.co.kr>.''') |
| |
|
| | version = '''{program} |
| | {copyright} |
| | {license} |
| | {disclosure}'''.format( |
| | program=program, |
| | copyright=copyright, |
| | license=license, |
| | disclosure=disclosure, |
| | ) |
| |
|
| |
|
| | def main(): |
| | argparser = main_argparser() |
| | args = argparser.parse_args() |
| | init_logger(args) |
| |
|
| | try: |
| | subcommand_fn = args.func |
| | except AttributeError: |
| | argparser.print_help() |
| | raise SystemExit(1) |
| |
|
| | try: |
| | return subcommand_fn(args) |
| | except InvalidHwp5FileError as e: |
| | logger.error('%s', e) |
| | raise SystemExit(1) |
| | except ParseError as e: |
| | e.print_to_logger(logger) |
| | raise SystemExit(1) |
| |
|
| |
|
| | def main_argparser(): |
| | from .proc.version import version_argparser |
| | from .proc.header import header_argparser |
| | from .proc.summaryinfo import summaryinfo_argparser |
| | from .proc.ls import ls_argparser |
| | from .proc.cat import cat_argparser |
| | from .proc.unpack import unpack_argparser |
| | from .proc.records import records_argparser |
| | from .proc.models import models_argparser |
| | from .proc.find import find_argparser |
| | from .proc.xml import xml_argparser |
| | from .proc.rawunz import rawunz_argparser |
| | from .proc.diststream import diststream_argparser |
| | parser = ArgumentParser( |
| | prog='hwp5proc', |
| | description=_('Do various operations on HWPv5 files.'), |
| | ) |
| | parser.add_argument( |
| | '--loglevel', |
| | help=_('Set log level.'), |
| | ) |
| | parser.add_argument( |
| | '--logfile', |
| | help=_('Set log file.'), |
| | ) |
| | subcommands = parser.add_subparsers( |
| | title=_('subcommands'), |
| | description=_('valid subcommands'), |
| | ) |
| | version_argparser(subcommands, _) |
| | header_argparser(subcommands, _) |
| | summaryinfo_argparser(subcommands, _) |
| | ls_argparser(subcommands, _) |
| | cat_argparser(subcommands, _) |
| | unpack_argparser(subcommands, _) |
| | records_argparser(subcommands, _) |
| | models_argparser(subcommands, _) |
| | find_argparser(subcommands, _) |
| | xml_argparser(subcommands, _) |
| | rawunz_argparser(subcommands, _) |
| | diststream_argparser(subcommands, _) |
| | return parser |
| |
|