pw_presubmit: support subproject CIPD manifests

Bug: 138
Change-Id: I33c466e84a2e6b5a71438f31f99ded454061291c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/12880
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Rob Mohr <mohrr@google.com>
diff --git a/pw_presubmit/py/pw_presubmit/environment.py b/pw_presubmit/py/pw_presubmit/environment.py
index 68982d7..372b299 100644
--- a/pw_presubmit/py/pw_presubmit/environment.py
+++ b/pw_presubmit/py/pw_presubmit/environment.py
@@ -24,13 +24,14 @@
 _LOG = logging.getLogger(__name__)
 
 
-def init_cipd(pigweed_root: Path, output_directory: Path) -> None:
+def init_cipd(
+    pigweed_root: Path,
+    output_directory: Path,
+    package_files: Iterable[Path] = ()) -> None:
     """Runs CIPD."""
 
     # TODO(mohrr): invoke by importing rather than by subprocess.
 
-    # TODO(pwbug/138): find way to support dependent project package files.
-
     cmd = [
         sys.executable,
         pigweed_root.joinpath('pw_env_setup', 'py', 'pw_env_setup',
@@ -38,10 +39,12 @@
         '--install-dir', output_directory,
     ]  # yapf: disable
 
-    package_files = pigweed_root.joinpath('pw_env_setup', 'py', 'pw_env_setup',
-                                          'cipd_setup').glob('*.json')
+    final_package_files = list(
+        pigweed_root.joinpath('pw_env_setup', 'py', 'pw_env_setup',
+                              'cipd_setup').glob('*.json'))
+    final_package_files.extend(package_files)
 
-    for package_file in package_files:
+    for package_file in final_package_files:
         cmd.extend(('--package-file', package_file))
 
     call(*cmd)