IN-147: Add attempts support to run-hooks command

Change-Id: Ic6c8cb42581b0812915e0581934a222e7f0fe39e
diff --git a/cmd/jiri/run_hooks.go b/cmd/jiri/run_hooks.go
index d537957..41b4e23 100644
--- a/cmd/jiri/run_hooks.go
+++ b/cmd/jiri/run_hooks.go
@@ -14,6 +14,7 @@
 var runHooksFlags struct {
 	localManifest bool
 	hookTimeout   uint
+	attempts      uint
 }
 
 var cmdRunHooks = &cmdline.Command{
@@ -30,6 +31,7 @@
 	tool.InitializeProjectFlags(&cmdRunHooks.Flags)
 	cmdRunHooks.Flags.BoolVar(&runHooksFlags.localManifest, "local-manifest", false, "Use local checked out manifest.")
 	cmdRunHooks.Flags.UintVar(&runHooksFlags.hookTimeout, "hook-timeout", project.DefaultHookTimeout, "Timeout in minutes for running the hooks operation.")
+	cmdRunHooks.Flags.UintVar(&runHooksFlags.attempts, "attempts", 1, "Number of attempts before failing.")
 }
 
 func runHooks(jirix *jiri.X, args []string) error {
@@ -37,6 +39,10 @@
 	if err != nil {
 		return err
 	}
+	if runHooksFlags.attempts < 1 {
+		return jirix.UsageErrorf("Number of attempts should be >= 1")
+	}
+	jirix.Attempts = runHooksFlags.attempts
 
 	// Get hooks.
 	_, hooks, err := project.LoadManifestFile(jirix, jirix.JiriManifestFile(), localProjects, runHooksFlags.localManifest)