instance.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package kos
  2. import (
  3. "git.nspix.com/golang/kos/entry/cli"
  4. "git.nspix.com/golang/kos/entry/http"
  5. _ "git.nspix.com/golang/kos/pkg/request"
  6. _ "git.nspix.com/golang/kos/util/arrays"
  7. _ "git.nspix.com/golang/kos/util/bs"
  8. _ "git.nspix.com/golang/kos/util/fetch"
  9. _ "git.nspix.com/golang/kos/util/humanize"
  10. _ "git.nspix.com/golang/kos/util/random"
  11. _ "git.nspix.com/golang/kos/util/reflection"
  12. _ "git.nspix.com/golang/kos/util/sys"
  13. "sync"
  14. )
  15. var (
  16. once sync.Once
  17. std *application
  18. )
  19. func initApplication(cbs ...Option) {
  20. once.Do(func() {
  21. std = New(cbs...)
  22. })
  23. }
  24. func Init(cbs ...Option) *application {
  25. initApplication(cbs...)
  26. return std
  27. }
  28. func Node() *Info {
  29. initApplication()
  30. return std.Info()
  31. }
  32. func Http() *http.Server {
  33. initApplication()
  34. return std.Http()
  35. }
  36. func Name() string {
  37. initApplication()
  38. return std.opts.Name
  39. }
  40. func Version() string {
  41. initApplication()
  42. return std.opts.Version
  43. }
  44. func Debug() bool {
  45. initApplication()
  46. return std.opts.EnableDebug
  47. }
  48. func Command() *cli.Server {
  49. initApplication()
  50. return std.Command()
  51. }
  52. func ShortName() string {
  53. initApplication()
  54. return std.opts.ShortName()
  55. }
  56. func Handle(method string, cb HandleFunc) {
  57. initApplication()
  58. std.Handle(method, cb)
  59. }