application.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package main
  2. import (
  3. "bufio"
  4. "errors"
  5. "fmt"
  6. "sparrow/pkg/models"
  7. "sparrow/pkg/rpcs"
  8. "os"
  9. "strings"
  10. "sparrow/pkg/server"
  11. )
  12. func addApplication() error {
  13. args := models.Application{}
  14. reader := bufio.NewReader(os.Stdin)
  15. fmt.Printf("application name: ")
  16. name, err := reader.ReadString('\n')
  17. if err != nil {
  18. return err
  19. }
  20. args.AppName = strings.Replace(name, "\n", "", -1)
  21. fmt.Printf("application description: ")
  22. desc, err := reader.ReadString('\n')
  23. if err != nil {
  24. return err
  25. }
  26. args.AppDescription = strings.Replace(desc, "\n", "", -1)
  27. fmt.Printf("application domain: ")
  28. domain, err := reader.ReadString('\n')
  29. if err != nil {
  30. return err
  31. }
  32. args.AppDomain = strings.Replace(domain, "\n", "", -1)
  33. fmt.Printf("application report url: ")
  34. url, err := reader.ReadString('\n')
  35. if err != nil {
  36. return err
  37. }
  38. args.ReportUrl = strings.Replace(url, "\n", "", -1)
  39. fmt.Printf("application token: ")
  40. token, err := reader.ReadString('\n')
  41. if err != nil {
  42. return err
  43. }
  44. args.AppToken = strings.Replace(token, "\n", "", -1)
  45. reply := &models.Application{}
  46. err = server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.SaveApplication", &args, reply)
  47. if err != nil {
  48. return err
  49. }
  50. fmt.Println("=======> application created successfully:")
  51. printStruct(reply)
  52. fmt.Println("=======")
  53. return nil
  54. }
  55. func DoApplicationCommand(args []string) error {
  56. if len(args) < 1 {
  57. return errors.New("command arguments not enough!")
  58. }
  59. op := strings.Replace(args[0], "\n", "", -1)
  60. switch op {
  61. case "add":
  62. if len(args) > 1 {
  63. return errors.New("unnecessary command arguments. just type 'application add'")
  64. }
  65. err := addApplication()
  66. if err != nil {
  67. return err
  68. }
  69. default:
  70. return errors.New("operation not suported:" + op)
  71. }
  72. return nil
  73. }