41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package models
|
|
|
|
import (
|
|
"html/template"
|
|
"main/mvc/models/models_pages"
|
|
"time"
|
|
)
|
|
|
|
type App struct {
|
|
Cfg *Config // Сонфиг
|
|
Posts models_pages.Posts // Посты
|
|
Templates *template.Template // Шаблоны страниц
|
|
PagesCache *Cache // Кэш (отрендеренные странички)
|
|
Version int64 // Время запуска
|
|
}
|
|
|
|
// Инициализирует приложение
|
|
func InitApp() (*App, error) {
|
|
var err error
|
|
|
|
app := &App{}
|
|
|
|
// Версия чтобы статика не кэшировалась
|
|
app.Version = time.Now().Unix()
|
|
// Загрузка конфига
|
|
if app.Cfg, err = loadConfig(ConfigPath); err != nil {
|
|
return nil, err
|
|
}
|
|
// Загрузка постов
|
|
if app.Posts, err = models_pages.LoadPosts(app.Cfg.PostsDir); err != nil {
|
|
return nil, err
|
|
}
|
|
// Загрузка шаблонов
|
|
if app.Templates, err = loadTemplates(app.Cfg.TemplatesDir, app.Cfg.TemplatesExt); err != nil {
|
|
return nil, err
|
|
}
|
|
// Инициализация кэша
|
|
app.PagesCache = initCache()
|
|
return app, nil
|
|
}
|