|
- package main
-
- import (
- "encoding/json"
- log "github.com/sirupsen/logrus"
- "io/ioutil"
- "os"
- "path/filepath"
- "strings"
- )
-
- type configStaticHtml struct {
- Dir string
- StaticUrl string
- StripPrefix string
- }
-
- type configuration struct {
- Host string
- Port string
- DSN string
- TlsCert string
- TlsKey string
- Static []configStaticHtml
- Debug bool
- UploadsDir struct {
- FileDir string
- FileDefault string
- JpgDir string
- JpgDefault string
- ThumbDir string
- ThumbDefault string
- PdfDir string
- PdfDefault string
- }
- TempDir string
- Session struct { //TODO: figure what is this intended for
- Guest bool
- Year int //how many years
- Month int //how many years
- Day int //how many years
- }
- }
-
- var configFile = "config.json"
- var config = configuration{}
-
- func (m *configuration) readConfig() (e error) {
- log.Printf("read Path config from %s", configFile)
- body, e := ioutil.ReadFile(configFile)
- if e != nil {
- log.Fatal("Cannot read config from " + configFile)
- return
- }
- e = json.Unmarshal(body, m)
-
- // Check upload dir and defaults
- if !config.checkUploadDir() {
- log.Fatal("bad config file", configFile)
- return
- }
-
- if config.Debug {
- log.Println(config)
- }
-
- //TODO: check config before proceed further
- return
- }
-
- func (m *configuration) checkUploadDir() (valid bool) {
- valid = true
- if !fileExists(m.UploadsDir.ThumbDefault) {
- valid = false
- log.Fatal("default thumbnail is missing ", m.UploadsDir.ThumbDefault)
- }
-
- if !fileExists(m.UploadsDir.FileDefault) {
- valid = false
- log.Fatal("default file for upload is missing ", m.UploadsDir.FileDefault)
- }
- if !fileExists(m.UploadsDir.JpgDefault) {
- valid = false
- log.Fatal("default jpg for upload is missing ", m.UploadsDir.JpgDefault)
- }
- if !fileExists(m.UploadsDir.PdfDefault) {
- valid = false
- log.Fatal("default pdf for upload is missing ", &m.UploadsDir.PdfDefault)
- }
-
- //check dir
- if !fileExists(m.UploadsDir.FileDir) {
- valid = false
- log.Fatal("UploadsDir.FileDir is missing ", &m.UploadsDir.PdfDefault)
- }
-
- if !fileExists(m.UploadsDir.JpgDir) {
- valid = false
- log.Fatal("UploadsDir.JpgDir is missing ", &m.UploadsDir.PdfDefault)
- }
- if !fileExists(m.UploadsDir.ThumbDir) {
- valid = false
- log.Fatal("UploadsDir.ThumbDir is missing ", &m.UploadsDir.PdfDefault)
- }
- if !fileExists(m.UploadsDir.PdfDir) {
- valid = false
- log.Fatal("UploadsDir.PdfDir is missing ", &m.UploadsDir.PdfDefault)
- }
-
- if !fileExists(m.TempDir) {
- valid = false
- log.Fatal("temp Dir is missing ", &m.UploadsDir.PdfDefault)
- }
-
- // convert to absolute path : fileDir
- p, e := filepath.Abs(m.UploadsDir.FileDir)
- if e != nil {
- valid = false
- log.Fatal("bad upload file dir", m.UploadsDir.FileDir, e)
- }
- m.UploadsDir.FileDir = p + string(os.PathSeparator) //change it to absolute dir
-
- // convert to absolute path : jpgDir
- p, e = filepath.Abs(m.UploadsDir.JpgDir)
- if e != nil {
- valid = false
- log.Fatal("bad jpg file dir", m.UploadsDir.JpgDir, e)
- }
- m.UploadsDir.JpgDir = p + string(os.PathSeparator) //change it to absolute dir
-
- // convert to absolute path : thumbDir
- p, e = filepath.Abs(m.UploadsDir.ThumbDir)
- if e != nil {
- valid = false
- log.Fatal("bad thumbnail dir", m.UploadsDir.ThumbDir, e)
- }
- m.UploadsDir.ThumbDir = p + string(os.PathSeparator) //change it to absolute dir
-
- // convert to absolute path : PdfDir
- p, e = filepath.Abs(m.UploadsDir.PdfDir)
- if e != nil {
- valid = false
- log.Fatal("bad pdf file dir", m.UploadsDir.PdfDir, e)
- }
- m.UploadsDir.PdfDir = p + string(os.PathSeparator) //change it to absolute dir
-
- // convert to absolute path : TmpDir
- p, e = filepath.Abs(m.TempDir)
- if e != nil {
- valid = false
- log.Fatal("bad TempDir dir", m.TempDir, e)
- }
- m.TempDir = p + string(os.PathSeparator) //change it to absolute dir
- return
- }
-
- func (m *configuration) getAvatarPath() (ret string) {
- for _, v := range m.Static {
- if strings.ToLower(v.Dir) == "avatar" {
- return v.Dir //found it
- }
- }
- return ""
- }
|