2
0

flags.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package daemon
  2. import (
  3. "git.beejay.kim/tool/service/config"
  4. "github.com/urfave/cli/v2"
  5. "os"
  6. "path/filepath"
  7. )
  8. var flags = []cli.Flag{
  9. &cli.PathFlag{
  10. Name: "config",
  11. Usage: "config file path",
  12. Required: true,
  13. Aliases: []string{"C"},
  14. TakesFile: false,
  15. Action: config.Load[Configuration],
  16. },
  17. &cli.StringFlag{
  18. Name: "topic",
  19. Usage: "kafka producer topic name",
  20. Required: true,
  21. Destination: &topic,
  22. Aliases: []string{"T"},
  23. },
  24. &cli.StringFlag{
  25. Name: "pid",
  26. Usage: "platform ID",
  27. Required: true,
  28. Destination: &pid,
  29. },
  30. &cli.StringFlag{
  31. Name: "bid",
  32. Usage: "broadcaster ID",
  33. Required: true,
  34. Destination: &bid,
  35. },
  36. &cli.PathFlag{
  37. Name: "out",
  38. TakesFile: false,
  39. Destination: &path,
  40. Action: func(ctx *cli.Context, path cli.Path) error {
  41. var (
  42. f *os.File
  43. err error
  44. )
  45. defer func() {
  46. if f == nil {
  47. return
  48. }
  49. _ = f.Close()
  50. _ = os.Remove(f.Name())
  51. }()
  52. if f, err = os.OpenFile(
  53. filepath.Join(path, ".watchdog"),
  54. os.O_APPEND|os.O_WRONLY|os.O_CREATE,
  55. 0666); err != nil {
  56. return err
  57. }
  58. return nil
  59. },
  60. },
  61. }