PageRenderTime 52ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/log/log_windows.go

https://github.com/Spencerx/onapp
Go | 102 lines | 85 code | 15 blank | 2 comment | 12 complexity | 19658826e59d938b434241f5427f6f05 MD5 | raw file
  1. // build windows
  2. package log
  3. import (
  4. "bytes"
  5. "fmt"
  6. "github.com/anschelsc/doscolor"
  7. "os"
  8. )
  9. const (
  10. info_color = doscolor.White | doscolor.Bright
  11. error_color = doscolor.Red | doscolor.Bright
  12. warn_color = doscolor.Yellow
  13. success_color = doscolor.Green | doscolor.Bright
  14. GREEN = success_color
  15. RED = error_color
  16. YELLOW = warn_color
  17. )
  18. var wrapper *doscolor.Wrapper
  19. var padded bool
  20. func Infof(fmt string, args ...interface{}) {
  21. println(fmt, info_color, false, args)
  22. }
  23. func Infoln(args ...interface{}) {
  24. println("", info_color, false, args)
  25. }
  26. func Successf(fmt string, args ...interface{}) {
  27. println(fmt, success_color, false, args)
  28. }
  29. func Successln(args ...interface{}) {
  30. println("", success_color, false, args)
  31. }
  32. // NYI on Windows
  33. func ColorString(in string, color doscolor.Color) string {
  34. return in
  35. }
  36. func InfoToggle(on bool) {
  37. if on {
  38. wrapper.Save()
  39. wrapper.Set(info_color)
  40. } else {
  41. wrapper.Restore()
  42. }
  43. }
  44. func Errorln(args ...interface{}) {
  45. out := make([]interface{}, len(args)+1)
  46. out[0] = "ERROR:"
  47. copy(out[1:], args)
  48. println("", error_color, true, out)
  49. }
  50. func Errorf(format string, args ...interface{}) {
  51. println(fmt.Sprintf("ERROR: %s", format), error_color, true, args)
  52. }
  53. func Warnln(args ...interface{}) {
  54. out := make([]interface{}, len(args)+1)
  55. out[0] = "WARNING:"
  56. copy(out[1:], args)
  57. println("", warn_color, true, out)
  58. }
  59. func Warnf(format string, args ...interface{}) {
  60. println(fmt.Sprintf("WARNING: %s", format), warn_color, true, args)
  61. }
  62. func println(format string, color doscolor.Color, pad bool, args interface{}) {
  63. var buf bytes.Buffer
  64. if wrapper == nil {
  65. wrapper = doscolor.NewWrapper(os.Stdout)
  66. }
  67. var c doscolor.Color
  68. c |= color
  69. if pad && !padded {
  70. buf.WriteByte('\n')
  71. }
  72. if format == "" {
  73. fmt.Fprintln(&buf, (args.([]interface{}))...)
  74. } else {
  75. fmt.Fprintf(&buf, format, (args.([]interface{}))...)
  76. }
  77. if pad && !padded {
  78. buf.WriteByte('\n')
  79. padded = true
  80. } else {
  81. padded = false
  82. }
  83. wrapper.Save()
  84. wrapper.Set(c)
  85. fmt.Printf(buf.String())
  86. wrapper.Restore()
  87. }