blob: d53795770fb08a804e4b85e79c19fedfe2e65394 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"fuchsia.googlesource.com/jiri"
"fuchsia.googlesource.com/jiri/cmdline"
"fuchsia.googlesource.com/jiri/project"
"fuchsia.googlesource.com/jiri/tool"
)
var runHooksFlags struct {
localManifest bool
hookTimeout uint
}
var cmdRunHooks = &cmdline.Command{
Runner: jiri.RunnerFunc(runHooks),
Name: "run-hooks",
Short: "Run hooks using local manifest",
Long: `
Run hooks using local manifest JIRI_HEAD version if -local-manifest flag is
false, else it runs hooks using current manifest checkout version.
`,
}
func init() {
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.")
}
func runHooks(jirix *jiri.X, args []string) error {
localProjects, err := project.LocalProjects(jirix, project.FastScan)
if err != nil {
return err
}
// Get hooks.
_, hooks, err := project.LoadManifestFile(jirix, jirix.JiriManifestFile(), localProjects, runHooksFlags.localManifest)
return project.RunHooks(jirix, hooks, runHooksFlags.hookTimeout)
}