main.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "myjob/libs/foo"
  6. "os/exec"
  7. "time"
  8. "dario.cat/mergo"
  9. "git.bazzel.dev/bmallen/helios/state"
  10. "git.bazzel.dev/bmallen/helios/tools"
  11. "gopkg.in/yaml.v3"
  12. )
  13. var (
  14. GlobalVar = "bar"
  15. JobID = state.ID()
  16. GlobalFunc = func() {}
  17. )
  18. func init() {
  19. log.Println("main init")
  20. fmt.Println("ID: ", state.ID())
  21. }
  22. type Foo struct {
  23. A *string
  24. B int64
  25. }
  26. func main() {
  27. log.Println("Hello from main")
  28. tools.SetLogger(log.Writer())
  29. fmt.Println(foo.Bar("Kung"))
  30. GlobalVar = foo.Bar("Kung")
  31. // Exec Testing
  32. cmd := exec.Command("whoami")
  33. log.Println("starting cmd...")
  34. out, err := cmd.CombinedOutput()
  35. if err != nil {
  36. log.Println(err)
  37. }
  38. fmt.Print(string(out))
  39. // Docker Testing
  40. err = tools.Docker().Image().Build("test:latest", ".", "Dockerfile")
  41. if err != nil {
  42. log.Println(err)
  43. }
  44. // State Testing
  45. state.Set("myvar", time.Now())
  46. // Mergo Testing
  47. first := "first"
  48. second := "second"
  49. src := Foo{
  50. A: &first,
  51. B: 2,
  52. }
  53. dest := Foo{
  54. A: &second,
  55. B: 1,
  56. }
  57. mergo.Merge(&dest, src, mergo.WithOverride, mergo.WithoutDereference)
  58. // Yaml Testing
  59. y, err := yaml.Marshal(dest)
  60. if err != nil {
  61. log.Println(err)
  62. } else {
  63. log.Println(string(y))
  64. }
  65. // Git Clone
  66. fmt.Println("# Git Clone")
  67. err = tools.Git().Clone("https://git.bazzel.dev/bmallen/helios-job-example.git", "main", "repo")
  68. if err != nil {
  69. log.Println(err)
  70. }
  71. // Terraform Testing
  72. t := tools.Terraform(".")
  73. fmt.Println("# Plan")
  74. p, err := t.Plan()
  75. if err != nil {
  76. log.Println(err)
  77. } else {
  78. fmt.Println("# Changes")
  79. for _, v := range p.ResourceChanges {
  80. fmt.Println(" ", v.Address)
  81. }
  82. }
  83. }
  84. func Test() {
  85. }