diff --git a/main.go b/main.go index 000e992..58721db 100644 --- a/main.go +++ b/main.go @@ -16,12 +16,12 @@ func main() { var err error // Инициализация приложения - if app, err = models.AppInit("config.json"); err != nil { + if app, err = models.AppInit(); err != nil { log.Fatal(err) } // Добавление префикса в виде домена сервера к записям в лог - log.SetPrefix(fmt.Sprintf("%s | ", app.Config.ServerDomain)) + log.SetPrefix(fmt.Sprintf("%s | ", models.Cfg.ServerDomain)) // Настройка маршрутов и запуск if setupRoutesAndRun(app) != nil { @@ -34,12 +34,12 @@ func setupRoutesAndRun(a *models.App) error { router := setupRoutes(a) // Запуск сервера - if ok, err := tools.IsIPInUse(a.Config.ServerIP); err != nil { + if ok, err := tools.IsIPInUse(models.Cfg.ServerIP); err != nil { return err } else if ok { - runServer(a.Config.ServerIP, a.Config.ServerPort, router) + runServer(models.Cfg.ServerIP, models.Cfg.ServerPort, router) } else { - runServer(a.Config.LocalIP, a.Config.LocalPort, router) + runServer(models.Cfg.LocalIP, models.Cfg.LocalPort, router) } return nil @@ -53,7 +53,7 @@ func setupRoutes(a *models.App) *http.ServeMux { m := controllers.MiddlewaresChain // Обработка статических файлов - router.Handle(a.Config.AssetsDir, m(controllers.StaticHandler())) + router.Handle(models.Cfg.AssetsDir, m(controllers.StaticHandler())) // Главные странички { diff --git a/mvc/controllers/pages/main.go b/mvc/controllers/pages/main.go index a7f051d..39f6913 100644 --- a/mvc/controllers/pages/main.go +++ b/mvc/controllers/pages/main.go @@ -18,7 +18,7 @@ func MainPageHandler(a *models.App) http.HandlerFunc { // Количество запросов, обработанных сервером за 24ч if r.Method == "COUNT" { var count []byte - if count, err = tools.GetJournalctlLogsCount("server", a.Config.ServerDomain, 24); err != nil { + if count, err = tools.GetJournalctlLogsCount("server", models.Cfg.ServerDomain, 24); err != nil { log.Printf("%s", err.Error()) } SendCount(w, count) diff --git a/mvc/models/app.go b/mvc/models/app.go index 6317191..f388960 100644 --- a/mvc/models/app.go +++ b/mvc/models/app.go @@ -11,28 +11,21 @@ import ( // App хранит информацию о приложении type App struct { - Config *Config // Конфиг Templates *template.Template // Шаблоны страниц Cache *Cache // Кэш (отрендеренные странички) Version int64 // Время запуска } // Инициализирует приложение -func AppInit(configPath string) (*App, error) { +func AppInit() (*App, error) { a := &App{ Version: time.Now().Unix(), - Config: ConfigInit(), Cache: CacheInit(), } - // Загрузка конфига - if err := a.Config.Load(configPath); err != nil { - return nil, err - } - // Загрузка шаблонов - if err := a.loadTemplates(a.Config.TemplatesDir, a.Config.TemplatesExt); err != nil { + if err := a.loadTemplates(Cfg.TemplatesDir, Cfg.TemplatesExt); err != nil { log.Fatal(err) } diff --git a/mvc/models/config.go b/mvc/models/config.go index ca7c284..4a26dba 100644 --- a/mvc/models/config.go +++ b/mvc/models/config.go @@ -2,6 +2,7 @@ package models import ( "encoding/json" + "log" "os" ) @@ -18,8 +19,14 @@ type Config struct { Port string } -func ConfigInit() *Config { - return &Config{} +var ( + Cfg = Config{} +) + +func init() { + if err := Cfg.Load("config.json"); err != nil { + log.Fatalf("%v", err) + } } func (c *Config) Load(configPath string) error { diff --git a/mvc/models/pages/posts.go b/mvc/models/pages/posts.go index b159404..5eebf85 100644 --- a/mvc/models/pages/posts.go +++ b/mvc/models/pages/posts.go @@ -6,6 +6,7 @@ import ( "html/template" "io" "log" + "main/mvc/models" "main/tools" "os" "path/filepath" @@ -25,7 +26,7 @@ var ( ) func init() { - if err := LoadPosts("posts/"); err != nil { + if err := LoadPosts(models.Cfg.PostsDir); err != nil { log.Fatalf("%v", err) } }