Example #1
0
def filetype(path, mode="r"):
    filename = os.path.expanduser(path)
    filename = os.path.abspath(filename)
    f = None
    try:
        f = open(filename, mode)
    except Exception as e:
        message = _gt("can't open '%s': %s")
        raise ArgumentTypeError(message % (path, e))
    finally:
        if f:
            f.close()
    _, ext = os.path.splitext(filename)
    if ext.lower() != ".odt":
        message = _gt("not an odt file '%s'")
        raise ArgumentTypeError(message % path)

    return filename
Example #2
0
def parse_cmdline(argv=None):
    """Parse command line options"""
    if argv is None:
        argv = sys.argv
    else:
        sys.argv.extend(argv)

    program_version = "v%s" % __version__
    program_build_date = str(__updated__)
    program_version_message = "%%(prog)s %s (%s)" % (program_version, program_build_date)
    program_shortdesc = _gt("odt2epub is an odt to epub converter.")

    # Setup argument parser
    parser = ArgumentParser(prog="odt2epub", description=program_shortdesc, formatter_class=RawDescriptionHelpFormatter)
    group = parser.add_mutually_exclusive_group()
    group.add_argument(
        "-v",
        "--verbose",
        dest="verbose",
        action="count",
        help=_gt("set verbosity level [default: %(default)s]"),
        default=1,
    )
    group.add_argument("-q", "--quiet", action="store_true", help=_gt("suppress non-error messages"))
    parser.add_argument("-V", "--version", action="version", version=program_version_message)
    parser.add_argument("-l", "--license", action=_LicenseAction)
    parser.add_argument("--inline-css", action="store_true", help=_gt("inline generated css"))
    parser.add_argument("--keep-css-class", action="store_true", help=_gt("keep css class"))
    parser.add_argument(
        "--map-style", action="append", help=_gt("keep odt style, providing a tuple (odt style, css style)")
    )
    parser.add_argument(
        "--insert-split-marker", action="store_true", help=_gt("insert sigil split marker before headers")
    )
    parser.add_argument(dest="odtfilename", help=_gt("odt file to convert"), metavar="<odt filename>", type=filetype)

    # Process arguments
    return parser.parse_args()