package main import ( "flag" "log" "os" "time" "git.bazzel.dev/bmallen/helios/pkg/job" "github.com/kouhin/envflag" ) var ( srcdir = flag.String("d", "", "source dir") src = flag.String("s", "", "source url") ref = flag.String("r", "", "source url ref") f = flag.String("f", "", "file to run") skipcleanup = flag.Bool("skipcleanup", false, "skip auto cleanup") report = flag.Bool("report", false, "output report") timeout = flag.Duration("timeout", time.Second*10, "timeout") ) func main() { ef := envflag.NewEnvFlag( flag.CommandLine, // which FlagSet to parse 3, // min length map[string]string{ // User-defined env-flag map "SOURCE_DIR": "d", }, true, // show env variable key in usage true, // show env variable value in usage ) if err := ef.Parse(os.Args[1:]); err != nil { panic(err) } j := job.New() j.Timeout(*timeout) if !*skipcleanup { j.AutoCleanup() } if srcdir != nil { if *srcdir != "" { j.SourceDir(*srcdir) } } if src != nil { if *src != "" { j.Source(*src, *ref) } } j.Run(*f) if *report { j.Report() } if j.Error() != nil { log.Fatal(j.Error()) } }