diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-08-01 17:37:00 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-08-01 17:37:00 +0000 |
| commit | f40f3f9f2fc07ebbd552d97c6e7a6a683fbd496e (patch) | |
| tree | 6f41aeb77ca4caa655d60a815125b1b9f3319421 /openstackclient/shell.py | |
| parent | 19bea1ca91166a2c7588b1ce7963fe73e8b6c406 (diff) | |
| parent | 756d2fac67b4128312e1d779648e62f1458b4ffc (diff) | |
| download | python-openstackclient-f40f3f9f2fc07ebbd552d97c6e7a6a683fbd496e.tar.gz | |
Merge "arguments are not locale decoded into Unicode"
Diffstat (limited to 'openstackclient/shell.py')
| -rw-r--r-- | openstackclient/shell.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/openstackclient/shell.py b/openstackclient/shell.py index b4f2df43..d6ce4ef6 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -18,7 +18,9 @@ import argparse import getpass +import locale import logging +import six import sys import traceback @@ -474,8 +476,17 @@ class OpenStackShell(app.App): tcmd.run(targs) -def main(argv=sys.argv[1:]): +def main(argv=None): + if argv is None: + argv = sys.argv[1:] + if six.PY2: + # Emulate Py3, decode argv into Unicode based on locale so that + # commands always see arguments as text instead of binary data + encoding = locale.getpreferredencoding() + if encoding: + argv = map(lambda arg: arg.decode(encoding), argv) + return OpenStackShell().run(argv) if __name__ == "__main__": - sys.exit(main(sys.argv[1:])) + sys.exit(main()) |
