Example #1
0
def prepare_release() -> int:
	"""
	Entry point for `se prepare-release`
	"""

	parser = argparse.ArgumentParser(description="Calculate work word count, insert release date if not yet set, and update modified date and revision number.")
	parser.add_argument("-n", "--no-word-count", dest="word_count", action="store_false", help="don’t calculate word count")
	parser.add_argument("-r", "--no-revision", dest="revision", action="store_false", help="don’t increment the revision number")
	parser.add_argument("-v", "--verbose", action="store_true", help="increase output verbosity")
	parser.add_argument("directories", metavar="DIRECTORY", nargs="+", help="a Standard Ebooks source directory")
	args = parser.parse_args()

	for directory in args.directories:
		directory = Path(directory).resolve()

		if args.verbose:
			print("Processing {} ...".format(directory))

		try:
			se_epub = SeEpub(directory)

			if args.word_count:
				if args.verbose:
					print("\tUpdating word count and reading ease ...", end="", flush=True)

				se_epub.update_word_count()
				se_epub.update_flesch_reading_ease()

				if args.verbose:
					print(" OK")

			if args.revision:
				if args.verbose:
					print("\tUpdating revision number ...", end="", flush=True)

				se_epub.set_release_timestamp()

				if args.verbose:
					print(" OK")
		except se.SeException as ex:
			se.print_error(ex)
			return ex.code

	return 0
Example #2
0
def prepare_release() -> int:
    """
	Entry point for `se prepare-release`
	"""

    parser = argparse.ArgumentParser(
        description=
        "Calculate work word count, insert release date if not yet set, and update modified date and revision number."
    )
    parser.add_argument("-w",
                        "--no-word-count",
                        dest="word_count",
                        action="store_false",
                        help="don’t calculate word count")
    parser.add_argument("-r",
                        "--no-revision",
                        dest="revision",
                        action="store_false",
                        help="don’t increment the revision number")
    parser.add_argument("-v",
                        "--verbose",
                        action="store_true",
                        help="increase output verbosity")
    parser.add_argument("directories",
                        metavar="DIRECTORY",
                        nargs="+",
                        help="a Standard Ebooks source directory")
    args = parser.parse_args()

    console = Console(
        highlight=False,
        theme=se.RICH_THEME,
        force_terminal=se.is_called_from_parallel()
    )  # Syntax highlighting will do weird things when printing paths; force_terminal prints colors when called from GNU Parallel

    for directory in args.directories:
        directory = Path(directory).resolve()

        if args.verbose:
            console.print(
                f"Processing [path][link=file://{directory}]{directory}[/][/] ..."
            )

        try:
            se_epub = SeEpub(directory)

            if args.word_count:
                if args.verbose:
                    console.print("\tUpdating word count and reading ease ...",
                                  end="")

                se_epub.update_word_count()
                se_epub.update_flesch_reading_ease()

                if args.verbose:
                    console.print(" OK")

            if args.revision:
                if args.verbose:
                    console.print("\tUpdating revision number ...", end="")

                se_epub.set_release_timestamp()

                if args.verbose:
                    console.print(" OK")
        except se.SeException as ex:
            se.print_error(ex)
            return ex.code

    return 0