From 9a5c848541daadfd408ab91fe6b6e77720d2f883 Mon Sep 17 00:00:00 2001 From: Marc Foley Date: Wed, 15 Nov 2023 15:49:16 +0000 Subject: [PATCH] cli: add --characters-file --- src/diffenator2/__main__.py | 8 +++++++- src/diffenator2/_diffenator.py | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/diffenator2/__main__.py b/src/diffenator2/__main__.py index 981f1a1..be0a333 100644 --- a/src/diffenator2/__main__.py +++ b/src/diffenator2/__main__.py @@ -25,7 +25,9 @@ def main(**kwargs): "--imgs", help="Generate images", action="store_true", default=False ) universal_options_parser.add_argument("--filter-styles", default=None) - universal_options_parser.add_argument("--characters", "-ch", default=".*") + char_group = universal_options_parser.add_mutually_exclusive_group() + char_group.add_argument("--characters", "-ch", default=".*") + char_group.add_argument("--characters-file", "-chf") universal_options_parser.add_argument("--pt-size", "-pt", default=20) universal_options_parser.add_argument( "--styles", "-s", choices=("instances", "cross_product", "masters"), @@ -53,6 +55,10 @@ def main(**kwargs): diff_parser.add_argument("--no-words", action="store_true", help="Skip diffing wordlists") args = parser.parse_args() + if args.characters_file: + with open(args.characters_file, encoding="utf-8") as char_file: + args.characters = char_file.read() + if os.path.exists(NINJA_BUILD_FILE): os.remove(NINJA_BUILD_FILE) if os.path.exists(".ninja_log"): diff --git a/src/diffenator2/_diffenator.py b/src/diffenator2/_diffenator.py index da317a7..0f89add 100755 --- a/src/diffenator2/_diffenator.py +++ b/src/diffenator2/_diffenator.py @@ -101,7 +101,9 @@ def main(): parser.add_argument("--coords", "-c", default={}) parser.add_argument("--threshold", "-t", default=THRESHOLD, type=float) parser.add_argument("--font-size", "-pt", default=FONT_SIZE, type=int) - parser.add_argument("--characters", "-ch", default=".*") + char_group = parser.add_mutually_exclusive_group() + char_group.add_argument("--characters", "-ch", default=".*") + char_group.add_argument("--characters-file", "-chf") parser.add_argument("--no-words", action="store_true") parser.add_argument("--no-tables", action="store_true") parser.add_argument("--out", "-o", default="out", help="Output html path") @@ -115,6 +117,10 @@ def main(): matcher.diffenator(coords) matcher.upms() + if args.characters_file: + with open(args.characters_file, encoding="utf-8") as char_file: + args.characters = char_file.read() + diff = DiffFonts( matcher, words=not args.no_words,