main.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package main
  2. import (
  3. "flag"
  4. "log"
  5. "os"
  6. "time"
  7. "git.bazzel.dev/bmallen/helios/pkg/job"
  8. "github.com/kouhin/envflag"
  9. )
  10. var (
  11. srcdir = flag.String("d", "", "source dir")
  12. src = flag.String("s", "", "source url")
  13. ref = flag.String("r", "", "source url ref")
  14. f = flag.String("f", "", "file to run")
  15. skipcleanup = flag.Bool("skipcleanup", false, "skip auto cleanup")
  16. report = flag.Bool("report", false, "output report")
  17. timeout = flag.Duration("timeout", time.Second*10, "timeout")
  18. )
  19. func main() {
  20. ef := envflag.NewEnvFlag(
  21. flag.CommandLine, // which FlagSet to parse
  22. 3, // min length
  23. map[string]string{ // User-defined env-flag map
  24. "SOURCE_DIR": "d",
  25. },
  26. true, // show env variable key in usage
  27. true, // show env variable value in usage
  28. )
  29. if err := ef.Parse(os.Args[1:]); err != nil {
  30. panic(err)
  31. }
  32. j := job.New()
  33. j.Timeout(*timeout)
  34. if !*skipcleanup {
  35. j.AutoCleanup()
  36. }
  37. if srcdir != nil {
  38. if *srcdir != "" {
  39. j.SourceDir(*srcdir)
  40. }
  41. }
  42. if src != nil {
  43. if *src != "" {
  44. j.Source(*src, *ref)
  45. }
  46. }
  47. j.Run(*f)
  48. if *report {
  49. j.Report()
  50. }
  51. if j.Error() != nil {
  52. log.Fatal(j.Error())
  53. }
  54. }