bin/sync: call fetch-gn when DEPS changes

Change-Id: Ifb2a364df1a8817152a2c1e79748d14534a9e523
Reviewed-on: https://skia-review.googlesource.com/3904
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/bin/sync b/bin/sync
index 34bfc64..154acbc 100755
--- a/bin/sync
+++ b/bin/sync
@@ -68,17 +68,18 @@
   if not os.path.isfile('.gclient'):
     with open('.gclient', 'w') as o:
       o.write(default_gclient_config)
-  gclient_sync_command = [gclient, 'sync'] + skia_opt_deps
-  try:
-    sys.stdout.write('%r\n' % gclient_sync_command)
-    subprocess.check_call(gclient_sync_command)
-  except:
-    sys.stderr.write('\n`gclient sync` failed.\n')
+  for command in [[gclient, 'sync'] + skia_opt_deps,
+                  ['python', os.path.join('bin', 'fetch-gn')]]:
     try:
-      os.remove('.deps_sha1')  # Unknown state.
+      sys.stdout.write('%r\n' % command)
+      subprocess.check_call(command)
     except:
-      pass
-    exit(1)
+      sys.stderr.write('\n%r failed.\n' % command)
+      try:
+        os.remove('.deps_sha1')  # Unknown state.
+      except:
+        pass
+      exit(1)
   # Only write hash after a successful sync.
   with open('.deps_sha1', 'w') as o:
     o.write(deps_hash)