diff --git a/README.md b/README.md index 25deeaf..8644157 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ docker run --rm -it nim65s/matrix-webhook -h ``` ``` -usage: python -m matrix_webhook [-h] [-H HOST] [-P PORT] [-u MATRIX_URL] -i MATRIX_ID [-p MATRIX_PW] [-t MATRIX_TOKEN] -k API_KEY [-v] +usage: python -m matrix_webhook [-h] [-H HOST] [-P PORT] [-u MATRIX_URL] -i MATRIX_ID (-p MATRIX_PW | -t MATRIX_TOKEN) -k API_KEY [-v] Configuration for Matrix Webhook. diff --git a/matrix_webhook/conf.py b/matrix_webhook/conf.py index 4273418..538ee18 100644 --- a/matrix_webhook/conf.py +++ b/matrix_webhook/conf.py @@ -33,16 +33,21 @@ parser.add_argument( else {"required": True} ), ) -parser.add_argument( +auth = parser.add_mutually_exclusive_group( + required=all(v not in os.environ for v in ["MATRIX_PW", "MATRIX_TOKEN"]) +) +auth.add_argument( "-p", "--matrix-pw", - help="matrix password. Either this or token required. Environment variable: `MATRIX_PW`", + help="matrix password. Either this or token required. " + "Environment variable: `MATRIX_PW`", **({"default": os.environ["MATRIX_PW"]} if "MATRIX_PW" in os.environ else {}), ) -parser.add_argument( +auth.add_argument( "-t", "--matrix-token", - help="matrix access token. Either this or password required. Environment variable: `MATRIX_TOKEN`", + help="matrix access token. Either this or password required. " + "Environment variable: `MATRIX_TOKEN`", **({"default": os.environ["MATRIX_TOKEN"]} if "MATRIX_TOKEN" in os.environ else {}), ) parser.add_argument( @@ -61,10 +66,6 @@ parser.add_argument( args = parser.parse_args() -if not (args.matrix_pw or args.matrix_token): - print("Error: Either MATRIX_PW or MATRIX_TOKEN needs to be provided") - exit(1) - SERVER_ADDRESS = (args.host, args.port) MATRIX_URL = args.matrix_url MATRIX_ID = args.matrix_id