Skip to content

Commit

Permalink
Merge pull request #153 from monstermunchkin/issues/149-timeout
Browse files Browse the repository at this point in the history
main: Add --timeout flag
  • Loading branch information
stgraber committed Mar 6, 2019
2 parents 8b12998 + 795fd71 commit d859adc
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions distrobuilder/main.go
Expand Up @@ -61,6 +61,7 @@ import (
"os"
"path/filepath"
"strings"
"time"

"github.com/spf13/cobra"
"gopkg.in/yaml.v2"
Expand All @@ -73,6 +74,7 @@ type cmdGlobal struct {
flagCleanup bool
flagCacheDir string
flagOptions []string
flagTimeout uint

definition *shared.Definition
sourceDir string
Expand Down Expand Up @@ -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}
Expand All @@ -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 {
Expand Down

0 comments on commit d859adc

Please sign in to comment.