Make update_3p_packages find all dart_dependencies files

Change-Id: I5246a968169eb2191ff2140537ed0c0be66c0ada
diff --git a/dart/update_3p_packages.py b/dart/update_3p_packages.py
index 788600e..c788f69 100755
--- a/dart/update_3p_packages.py
+++ b/dart/update_3p_packages.py
@@ -4,9 +4,11 @@
 # found in the LICENSE file.
 
 import os
+import fnmatch
 import paths
 import subprocess
 import sys
+import glob
 
 # These are the locations of pubspec files that are roots of the dependency
 # graph.  If they contain conflicting requirements for a package 'pub get' will
@@ -26,17 +28,10 @@
     'third_party/flutter/sky/packages/sky_engine',
 ]
 
-# These are the locations of yaml files listing the Dart dependencies of a git
-# project.
-PROJECT_DEPENDENCIES = [
-    'build/dart',
-    'topaz/app/chat',
-    'topaz/app/dashboard',
-    'topaz/app/xi',
-    'topaz/public/dart',
-    'topaz/tools',
-]
-
+def find_dart_dependency_paths(start_dir='./'):
+    for root, dirnames, filenames in os.walk(start_dir):
+        for filename in fnmatch.filter(filenames, 'dart_dependencies.yaml'):
+            yield root
 
 def main():
     if sys.platform.startswith('linux'):
@@ -53,7 +48,7 @@
     output_path = os.path.join(paths.FUCHSIA_ROOT, 'third_party', 'dart-pkg',
                                'pub')
     flutter_root = os.path.join(paths.FUCHSIA_ROOT, 'third_party', 'dart-pkg',
-                                'git', 'flutter');
+                                'git', 'flutter')
 
     args = [importer_path]
     args.append('--pub')
@@ -64,10 +59,13 @@
     for root in ROOT_PUBSPECS:
         args.append(os.path.join(paths.FUCHSIA_ROOT, root))
     args.append('--projects')
-    for project in PROJECT_DEPENDENCIES:
-        args.append(os.path.join(paths.FUCHSIA_ROOT, project))
+    for project in find_dart_dependency_paths(paths.FUCHSIA_ROOT):
+        args.append(project)
 
-    subprocess.check_call(args, env={"FLUTTER_ROOT": flutter_root});
+    subprocess.check_call(
+        args, env={
+            "FLUTTER_ROOT": flutter_root
+        })
 
 
 if __name__ == '__main__':