Support quoting for command arguments

I've encountered a problem when trying to use a passphrase with spaces in `/olm import`.
The arguments were just broken by spaces. shlex has more advanced splitting which allows
taking multi-word arguments in quotes.
This commit is contained in:
Bohdan Horbeshko 2021-06-06 05:05:10 +03:00
parent 2b668080bd
commit f05a55a0af

View file

@ -19,6 +19,7 @@ from __future__ import unicode_literals
import argparse import argparse
import os import os
import re import re
import shlex
from builtins import str from builtins import str
from future.moves.itertools import zip_longest from future.moves.itertools import zip_longest
from collections import defaultdict from collections import defaultdict
@ -60,7 +61,7 @@ class WeechatCommandParser(object):
@staticmethod @staticmethod
def _run_parser(parser, args): def _run_parser(parser, args):
try: try:
parsed_args = parser.parse_args(args.split()) parsed_args = parser.parse_args(shlex.split(args))
return parsed_args return parsed_args
except ParseError: except ParseError:
return None return None