diff options
Diffstat (limited to 'subcmds/sync.py')
| -rw-r--r-- | subcmds/sync.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py index 20d75dc8..250925f4 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
| @@ -68,6 +68,7 @@ from git_config import GetUrlCookieFile | |||
| 68 | from git_refs import HEAD | 68 | from git_refs import HEAD |
| 69 | from git_refs import R_HEADS | 69 | from git_refs import R_HEADS |
| 70 | import git_superproject | 70 | import git_superproject |
| 71 | from hooks import RepoHook | ||
| 71 | import platform_utils | 72 | import platform_utils |
| 72 | from progress import elapsed_str | 73 | from progress import elapsed_str |
| 73 | from progress import jobs_str | 74 | from progress import jobs_str |
| @@ -623,6 +624,7 @@ later is required to fix a server side protocol bug. | |||
| 623 | action="store_true", | 624 | action="store_true", |
| 624 | help=optparse.SUPPRESS_HELP, | 625 | help=optparse.SUPPRESS_HELP, |
| 625 | ) | 626 | ) |
| 627 | RepoHook.AddOptionGroup(p, "post-sync") | ||
| 626 | 628 | ||
| 627 | def _GetBranch(self, manifest_project): | 629 | def _GetBranch(self, manifest_project): |
| 628 | """Returns the branch name for getting the approved smartsync manifest. | 630 | """Returns the branch name for getting the approved smartsync manifest. |
| @@ -1847,6 +1849,21 @@ later is required to fix a server side protocol bug. | |||
| 1847 | except (KeyboardInterrupt, Exception) as e: | 1849 | except (KeyboardInterrupt, Exception) as e: |
| 1848 | raise RepoUnhandledExceptionError(e, aggregate_errors=errors) | 1850 | raise RepoUnhandledExceptionError(e, aggregate_errors=errors) |
| 1849 | 1851 | ||
| 1852 | # Run post-sync hook only after successful sync | ||
| 1853 | self._RunPostSyncHook(opt) | ||
| 1854 | |||
| 1855 | def _RunPostSyncHook(self, opt): | ||
| 1856 | """Run post-sync hook if configured in manifest <repo-hooks>.""" | ||
| 1857 | hook = RepoHook.FromSubcmd( | ||
| 1858 | hook_type="post-sync", | ||
| 1859 | manifest=self.manifest, | ||
| 1860 | opt=opt, | ||
| 1861 | abort_if_user_denies=False, | ||
| 1862 | ) | ||
| 1863 | success = hook.Run(repo_topdir=self.client.topdir) | ||
| 1864 | if not success: | ||
| 1865 | print("Warning: post-sync hook reported failure.") | ||
| 1866 | |||
| 1850 | def _ExecuteHelper(self, opt, args, errors): | 1867 | def _ExecuteHelper(self, opt, args, errors): |
| 1851 | manifest = self.outer_manifest | 1868 | manifest = self.outer_manifest |
| 1852 | if not opt.outer_manifest: | 1869 | if not opt.outer_manifest: |
