Use shell=False on non-Windows for gn-format.py
I don't exactly know why, but it wouldn't work for me on Mac with
shell=True. (I guess there must be few users other than me as no one
else noticed I guess.)
R=thakis@chromium.org
Review-Url: https://codereview.chromium.org/2296633003
Cr-Original-Commit-Position: refs/heads/master@{#415416}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 38182d4aa014f32cb1298a230514dea181b1b1c0
diff --git a/tools/gn/bin/gn-format.py b/tools/gn/bin/gn-format.py
index 4769640..561c76c 100644
--- a/tools/gn/bin/gn-format.py
+++ b/tools/gn/bin/gn-format.py
@@ -27,18 +27,19 @@
buf = vim.current.buffer
text = '\n'.join(buf)
+ is_win = sys.platform.startswith('win32')
# Avoid flashing an ugly cmd prompt on Windows when invoking gn.
startupinfo = None
- if sys.platform.startswith('win32'):
+ if is_win:
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
- # Call formatter.
+ # Call formatter. Needs shell=True on Windows due to gn.bat in depot_tools.
p = subprocess.Popen([binary, 'format', '--stdin'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
stdin=subprocess.PIPE, startupinfo=startupinfo,
- shell=True, universal_newlines=True)
+ shell=is_win, universal_newlines=True)
stdout, stderr = p.communicate(input=text)
if p.returncode != 0:
print 'Formatting failed, please report to gn-dev@chromium.org.'