From d4dc77e2edc325ffac3ad011e2c134b3d172911c Mon Sep 17 00:00:00 2001 From: Avijit Das Date: Sun, 2 Feb 2025 19:31:54 +0530 Subject: [PATCH 1/5] Fix:#477 Normalize command-line arguments with various dash types --- zulip_bots/zulip_bots/run.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/zulip_bots/zulip_bots/run.py b/zulip_bots/zulip_bots/run.py index 5ba101b99..e97afbac1 100755 --- a/zulip_bots/zulip_bots/run.py +++ b/zulip_bots/zulip_bots/run.py @@ -4,6 +4,7 @@ import logging import os import sys +import re from typing import Optional from zulip_bots import finder @@ -16,8 +17,30 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) - +def normalize_args(): + """Replaces various dash variations in arguments with standard options.""" + dash_variations = r"[\u002D\u2010\u2011\u2012\u2013\u2014\u2015]" + for i, arg in enumerate(sys.argv): + if re.match(rf"^{dash_variations}{{2}}config{dash_variations}file$", arg): + sys.argv[i] = "--config-file" + elif re.match(rf"^{dash_variations}c$", arg): + sys.argv[i] = "-c" + elif re.match(rf"^{dash_variations}{{2}}bot{dash_variations}config{dash_variations}file$", arg): + sys.argv[i] = "--bot-config-file" + elif re.match(rf"^{dash_variations}c$", arg): + sys.argv[i] = "-b" + elif re.match(rf"^{dash_variations}{{2}}force$", arg): + sys.argv[i] = "--force" + elif re.match(rf"^{dash_variations}{{2}}registry$", arg): + sys.argv[i]='--registry' + elif re.match(rf"^{dash_variations}r$", arg): + sys.argv[i] = "-r" + elif re.match(rf"^{dash_variations}{{2}}provision$", arg): + sys.argv[i]='--provision' + + def parse_args() -> argparse.Namespace: + normalize_args() # Fix arguments before parsing usage = """ zulip-run-bot --config-file ~/zuliprc zulip-run-bot --help From c81bdaf992f8f2cd0f5d06147fc88d4567198bdd Mon Sep 17 00:00:00 2001 From: Avijit Das Date: Sun, 2 Feb 2025 19:46:25 +0530 Subject: [PATCH 2/5] Fix some bug --- zulip_bots/zulip_bots/run.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/zulip_bots/zulip_bots/run.py b/zulip_bots/zulip_bots/run.py index e97afbac1..aeab28852 100755 --- a/zulip_bots/zulip_bots/run.py +++ b/zulip_bots/zulip_bots/run.py @@ -3,8 +3,8 @@ import argparse import logging import os -import sys import re +import sys from typing import Optional from zulip_bots import finder @@ -17,6 +17,7 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) + def normalize_args(): """Replaces various dash variations in arguments with standard options.""" dash_variations = r"[\u002D\u2010\u2011\u2012\u2013\u2014\u2015]" @@ -25,20 +26,22 @@ def normalize_args(): sys.argv[i] = "--config-file" elif re.match(rf"^{dash_variations}c$", arg): sys.argv[i] = "-c" - elif re.match(rf"^{dash_variations}{{2}}bot{dash_variations}config{dash_variations}file$", arg): + elif re.match( + rf"^{dash_variations}{{2}}bot{dash_variations}config{dash_variations}file$", arg + ): sys.argv[i] = "--bot-config-file" elif re.match(rf"^{dash_variations}c$", arg): sys.argv[i] = "-b" elif re.match(rf"^{dash_variations}{{2}}force$", arg): sys.argv[i] = "--force" elif re.match(rf"^{dash_variations}{{2}}registry$", arg): - sys.argv[i]='--registry' + sys.argv[i] = "--registry" elif re.match(rf"^{dash_variations}r$", arg): sys.argv[i] = "-r" elif re.match(rf"^{dash_variations}{{2}}provision$", arg): - sys.argv[i]='--provision' + sys.argv[i] = "--provision" + - def parse_args() -> argparse.Namespace: normalize_args() # Fix arguments before parsing usage = """ From 74070784e3c90e1f122873c0c9c5bdf9f07b1660 Mon Sep 17 00:00:00 2001 From: Avijit Das Date: Sun, 2 Feb 2025 19:49:48 +0530 Subject: [PATCH 3/5] Fix some bug --- zulip_bots/zulip_bots/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zulip_bots/zulip_bots/run.py b/zulip_bots/zulip_bots/run.py index aeab28852..c91941d1b 100755 --- a/zulip_bots/zulip_bots/run.py +++ b/zulip_bots/zulip_bots/run.py @@ -18,7 +18,7 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) -def normalize_args(): +def normalize_args()-> None: """Replaces various dash variations in arguments with standard options.""" dash_variations = r"[\u002D\u2010\u2011\u2012\u2013\u2014\u2015]" for i, arg in enumerate(sys.argv): From 7b6909d236c441d7ff0c4eb14e4bdeaf32bfbaa0 Mon Sep 17 00:00:00 2001 From: Avijit Das Date: Sun, 2 Feb 2025 19:55:55 +0530 Subject: [PATCH 4/5] Fix some format --- zulip_bots/zulip_bots/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zulip_bots/zulip_bots/run.py b/zulip_bots/zulip_bots/run.py index c91941d1b..23bca98b0 100755 --- a/zulip_bots/zulip_bots/run.py +++ b/zulip_bots/zulip_bots/run.py @@ -18,7 +18,7 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) -def normalize_args()-> None: +def normalize_args() -> None: """Replaces various dash variations in arguments with standard options.""" dash_variations = r"[\u002D\u2010\u2011\u2012\u2013\u2014\u2015]" for i, arg in enumerate(sys.argv): From 3507b741217380f551aff097648dff99e340d3d7 Mon Sep 17 00:00:00 2001 From: Avijit Das <140038956+avijitdas126@users.noreply.github.com> Date: Mon, 3 Feb 2025 17:41:55 +0530 Subject: [PATCH 5/5] Fix: Normalize various dash variations in CLI arguments #477 This update ensures that different dash variations (e.g., en dash, em dash) in command-line arguments are replaced with standard options. It improves argument consistency and prevents unexpected behavior when parsing user inputs. Affected arguments include: - `--config-file`, `-c`, `--bot-config-file`, `-b`, `--force`, `--registry`, `-r`, and `--provision`. --- zulip_bots/zulip_bots/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zulip_bots/zulip_bots/run.py b/zulip_bots/zulip_bots/run.py index 23bca98b0..4e33f75f6 100755 --- a/zulip_bots/zulip_bots/run.py +++ b/zulip_bots/zulip_bots/run.py @@ -19,7 +19,7 @@ def normalize_args() -> None: - """Replaces various dash variations in arguments with standard options.""" + """Replaces various dash variations in arguments with standard options in command lines interfaces.""" dash_variations = r"[\u002D\u2010\u2011\u2012\u2013\u2014\u2015]" for i, arg in enumerate(sys.argv): if re.match(rf"^{dash_variations}{{2}}config{dash_variations}file$", arg):