Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

165 rindas
3.9KB

  1. package main
  2. import (
  3. "encoding/json"
  4. log "github.com/sirupsen/logrus"
  5. "io/ioutil"
  6. "os"
  7. "path/filepath"
  8. "strings"
  9. )
  10. type configStaticHtml struct {
  11. Dir string
  12. StaticUrl string
  13. StripPrefix string
  14. }
  15. type configuration struct {
  16. Host string
  17. Port string
  18. DSN string
  19. TlsCert string
  20. TlsKey string
  21. Static []configStaticHtml
  22. Debug bool
  23. UploadsDir struct {
  24. FileDir string
  25. FileDefault string
  26. JpgDir string
  27. JpgDefault string
  28. ThumbDir string
  29. ThumbDefault string
  30. PdfDir string
  31. PdfDefault string
  32. }
  33. TempDir string
  34. Session struct { //TODO: figure what is this intended for
  35. Guest bool
  36. Year int //how many years
  37. Month int //how many years
  38. Day int //how many years
  39. }
  40. }
  41. var configFile = "config.json"
  42. var config = configuration{}
  43. func (m *configuration) readConfig() (e error) {
  44. log.Printf("read Path config from %s", configFile)
  45. body, e := ioutil.ReadFile(configFile)
  46. if e != nil {
  47. log.Fatal("Cannot read config from " + configFile)
  48. return
  49. }
  50. e = json.Unmarshal(body, m)
  51. // Check upload dir and defaults
  52. if !config.checkUploadDir() {
  53. log.Fatal("bad config file", configFile)
  54. return
  55. }
  56. if config.Debug {
  57. log.Println(config)
  58. }
  59. //TODO: check config before proceed further
  60. return
  61. }
  62. func (m *configuration) checkUploadDir() (valid bool) {
  63. valid = true
  64. if !fileExists(m.UploadsDir.ThumbDefault) {
  65. valid = false
  66. log.Fatal("default thumbnail is missing ", m.UploadsDir.ThumbDefault)
  67. }
  68. if !fileExists(m.UploadsDir.FileDefault) {
  69. valid = false
  70. log.Fatal("default file for upload is missing ", m.UploadsDir.FileDefault)
  71. }
  72. if !fileExists(m.UploadsDir.JpgDefault) {
  73. valid = false
  74. log.Fatal("default jpg for upload is missing ", m.UploadsDir.JpgDefault)
  75. }
  76. if !fileExists(m.UploadsDir.PdfDefault) {
  77. valid = false
  78. log.Fatal("default pdf for upload is missing ", &m.UploadsDir.PdfDefault)
  79. }
  80. //check dir
  81. if !fileExists(m.UploadsDir.FileDir) {
  82. valid = false
  83. log.Fatal("UploadsDir.FileDir is missing ", &m.UploadsDir.PdfDefault)
  84. }
  85. if !fileExists(m.UploadsDir.JpgDir) {
  86. valid = false
  87. log.Fatal("UploadsDir.JpgDir is missing ", &m.UploadsDir.PdfDefault)
  88. }
  89. if !fileExists(m.UploadsDir.ThumbDir) {
  90. valid = false
  91. log.Fatal("UploadsDir.ThumbDir is missing ", &m.UploadsDir.PdfDefault)
  92. }
  93. if !fileExists(m.UploadsDir.PdfDir) {
  94. valid = false
  95. log.Fatal("UploadsDir.PdfDir is missing ", &m.UploadsDir.PdfDefault)
  96. }
  97. if !fileExists(m.TempDir) {
  98. valid = false
  99. log.Fatal("temp Dir is missing ", &m.UploadsDir.PdfDefault)
  100. }
  101. // convert to absolute path : fileDir
  102. p, e := filepath.Abs(m.UploadsDir.FileDir)
  103. if e != nil {
  104. valid = false
  105. log.Fatal("bad upload file dir", m.UploadsDir.FileDir, e)
  106. }
  107. m.UploadsDir.FileDir = p + string(os.PathSeparator) //change it to absolute dir
  108. // convert to absolute path : jpgDir
  109. p, e = filepath.Abs(m.UploadsDir.JpgDir)
  110. if e != nil {
  111. valid = false
  112. log.Fatal("bad jpg file dir", m.UploadsDir.JpgDir, e)
  113. }
  114. m.UploadsDir.JpgDir = p + string(os.PathSeparator) //change it to absolute dir
  115. // convert to absolute path : thumbDir
  116. p, e = filepath.Abs(m.UploadsDir.ThumbDir)
  117. if e != nil {
  118. valid = false
  119. log.Fatal("bad thumbnail dir", m.UploadsDir.ThumbDir, e)
  120. }
  121. m.UploadsDir.ThumbDir = p + string(os.PathSeparator) //change it to absolute dir
  122. // convert to absolute path : PdfDir
  123. p, e = filepath.Abs(m.UploadsDir.PdfDir)
  124. if e != nil {
  125. valid = false
  126. log.Fatal("bad pdf file dir", m.UploadsDir.PdfDir, e)
  127. }
  128. m.UploadsDir.PdfDir = p + string(os.PathSeparator) //change it to absolute dir
  129. // convert to absolute path : TmpDir
  130. p, e = filepath.Abs(m.TempDir)
  131. if e != nil {
  132. valid = false
  133. log.Fatal("bad TempDir dir", m.TempDir, e)
  134. }
  135. m.TempDir = p + string(os.PathSeparator) //change it to absolute dir
  136. return
  137. }
  138. func (m *configuration) getAvatarPath() (ret string) {
  139. for _, v := range m.Static {
  140. if strings.ToLower(v.Dir) == "avatar" {
  141. return v.Dir //found it
  142. }
  143. }
  144. return ""
  145. }