main: Add --timeout flag
Signed-off-by: Thomas Hipp <thomas.hipp@canonical.com>
This commit is contained in:
parent
8b12998aac
commit
795fd7178f
@ -61,6 +61,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"gopkg.in/yaml.v2"
|
||||
@ -73,6 +74,7 @@ type cmdGlobal struct {
|
||||
flagCleanup bool
|
||||
flagCacheDir string
|
||||
flagOptions []string
|
||||
flagTimeout uint
|
||||
|
||||
definition *shared.Definition
|
||||
sourceDir string
|
||||
@ -113,6 +115,8 @@ func main() {
|
||||
"", "Cache directory"+"``")
|
||||
app.PersistentFlags().StringSliceVarP(&globalCmd.flagOptions, "options", "o",
|
||||
[]string{}, "Override options (list of key=value)"+"``")
|
||||
app.PersistentFlags().UintVarP(&globalCmd.flagTimeout, "timeout", "t", 0,
|
||||
"Timeout in seconds"+"``")
|
||||
|
||||
// LXC sub-commands
|
||||
LXCCmd := cmdLXC{global: &globalCmd}
|
||||
@ -128,6 +132,18 @@ func main() {
|
||||
buildDirCmd := cmdBuildDir{global: &globalCmd}
|
||||
app.AddCommand(buildDirCmd.command())
|
||||
|
||||
// Timeout handler
|
||||
go func() {
|
||||
// No timeout set
|
||||
if globalCmd.flagTimeout == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
time.Sleep(time.Duration(globalCmd.flagTimeout) * time.Second)
|
||||
fmt.Println("Timed out")
|
||||
os.Exit(1)
|
||||
}()
|
||||
|
||||
// Run the main command and handle errors
|
||||
err := app.Execute()
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user