aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/utils/cmd_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/devil/devil/utils/cmd_helper.py')
-rw-r--r--catapult/devil/devil/utils/cmd_helper.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/catapult/devil/devil/utils/cmd_helper.py b/catapult/devil/devil/utils/cmd_helper.py
index b7b2f0dc..3c4a06ed 100644
--- a/catapult/devil/devil/utils/cmd_helper.py
+++ b/catapult/devil/devil/utils/cmd_helper.py
@@ -4,6 +4,7 @@
"""A wrapper for subprocess to make calling shell commands easier."""
+import codecs
import logging
import os
import pipes
@@ -15,11 +16,16 @@ import subprocess
import sys
import time
+from devil import base_error
logger = logging.getLogger(__name__)
_SafeShellChars = frozenset(string.ascii_letters + string.digits + '@%_-+=:,./')
+# Cache the string-escape codec to ensure subprocess can find it
+# later. Return value doesn't matter.
+codecs.lookup('string-escape')
+
def SingleQuote(s):
"""Return an shell-escaped version of the string using single quotes.
@@ -231,11 +237,11 @@ def GetCmdStatusOutputAndError(args, cwd=None, shell=False, env=None):
return (pipe.returncode, stdout, stderr)
-class TimeoutError(Exception):
+class TimeoutError(base_error.BaseError):
"""Module-specific timeout exception."""
def __init__(self, output=None):
- super(TimeoutError, self).__init__()
+ super(TimeoutError, self).__init__('Timeout')
self._output = output
@property