Port get_gn_arg_value() to native Python code so that it works on Windows.

This allows Goma to work on Win builder.

R=sky@chromium.org

Review URL: https://codereview.chromium.org/698853003
diff --git a/mojo/tools/mojob.py b/mojo/tools/mojob.py
index d0505b8..8caa609 100755
--- a/mojo/tools/mojob.py
+++ b/mojo/tools/mojob.py
@@ -8,6 +8,7 @@
 import argparse
 import os
 import platform
+import re
 import subprocess
 import sys
 
@@ -39,7 +40,7 @@
   gn_args.append('is_clang=' + ('true' if args.clang else 'false'))
 
   if platform.system() == 'Windows':
-    # Force x64 for now to avoid .asm build problems

+    # Force x64 for now to avoid .asm build problems
     gn_args.append('force_win64=true')
 
   goma_dir = os.environ.get('GOMA_DIR')
@@ -71,11 +72,13 @@
 
 
 def get_gn_arg_value(out_dir, arg):
-  if platform.system() == 'Windows':
-    return None  # TODO(jam): implement
-  command = (r'''grep -m 1 "^[[:space:]]*\<%s\>" "%s/args.gn" |
-      sed -n 's/.* = "\?\([^"]*\)"\?$/\1/p' ''') % (arg, out_dir)
-  return subprocess.check_output(command, shell=True).strip()
+  key_value_regex = re.compile(r'^%s = (.+)$' % arg)
+  with open(os.path.join(out_dir, "args.gn"), "r") as args_file:
+    for line in args_file.readlines():
+      m = key_value_regex.search(line)
+      if m:
+        return m.group(1).strip('"')
+  return ''
 
 
 def build(args):