выделил в cfg из app

posts
serr 2025-04-10 21:37:54 +03:00
parent 066a30ff7d
commit cbce343e51
5 changed files with 20 additions and 19 deletions

12
main.go
View File

@ -16,12 +16,12 @@ func main() {
var err error var err error
// Инициализация приложения // Инициализация приложения
if app, err = models.AppInit("config.json"); err != nil { if app, err = models.AppInit(); err != nil {
log.Fatal(err) log.Fatal(err)
} }
// Добавление префикса в виде домена сервера к записям в лог // Добавление префикса в виде домена сервера к записям в лог
log.SetPrefix(fmt.Sprintf("%s | ", app.Config.ServerDomain)) log.SetPrefix(fmt.Sprintf("%s | ", models.Cfg.ServerDomain))
// Настройка маршрутов и запуск // Настройка маршрутов и запуск
if setupRoutesAndRun(app) != nil { if setupRoutesAndRun(app) != nil {
@ -34,12 +34,12 @@ func setupRoutesAndRun(a *models.App) error {
router := setupRoutes(a) 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 return err
} else if ok { } else if ok {
runServer(a.Config.ServerIP, a.Config.ServerPort, router) runServer(models.Cfg.ServerIP, models.Cfg.ServerPort, router)
} else { } else {
runServer(a.Config.LocalIP, a.Config.LocalPort, router) runServer(models.Cfg.LocalIP, models.Cfg.LocalPort, router)
} }
return nil return nil
@ -53,7 +53,7 @@ func setupRoutes(a *models.App) *http.ServeMux {
m := controllers.MiddlewaresChain m := controllers.MiddlewaresChain
// Обработка статических файлов // Обработка статических файлов
router.Handle(a.Config.AssetsDir, m(controllers.StaticHandler())) router.Handle(models.Cfg.AssetsDir, m(controllers.StaticHandler()))
// Главные странички // Главные странички
{ {

View File

@ -18,7 +18,7 @@ func MainPageHandler(a *models.App) http.HandlerFunc {
// Количество запросов, обработанных сервером за 24ч // Количество запросов, обработанных сервером за 24ч
if r.Method == "COUNT" { if r.Method == "COUNT" {
var count []byte 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()) log.Printf("%s", err.Error())
} }
SendCount(w, count) SendCount(w, count)

View File

@ -11,28 +11,21 @@ import (
// App хранит информацию о приложении // App хранит информацию о приложении
type App struct { type App struct {
Config *Config // Конфиг
Templates *template.Template // Шаблоны страниц Templates *template.Template // Шаблоны страниц
Cache *Cache // Кэш (отрендеренные странички) Cache *Cache // Кэш (отрендеренные странички)
Version int64 // Время запуска Version int64 // Время запуска
} }
// Инициализирует приложение // Инициализирует приложение
func AppInit(configPath string) (*App, error) { func AppInit() (*App, error) {
a := &App{ a := &App{
Version: time.Now().Unix(), Version: time.Now().Unix(),
Config: ConfigInit(),
Cache: CacheInit(), 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) log.Fatal(err)
} }

View File

@ -2,6 +2,7 @@ package models
import ( import (
"encoding/json" "encoding/json"
"log"
"os" "os"
) )
@ -18,8 +19,14 @@ type Config struct {
Port string Port string
} }
func ConfigInit() *Config { var (
return &Config{} Cfg = Config{}
)
func init() {
if err := Cfg.Load("config.json"); err != nil {
log.Fatalf("%v", err)
}
} }
func (c *Config) Load(configPath string) error { func (c *Config) Load(configPath string) error {

View File

@ -6,6 +6,7 @@ import (
"html/template" "html/template"
"io" "io"
"log" "log"
"main/mvc/models"
"main/tools" "main/tools"
"os" "os"
"path/filepath" "path/filepath"
@ -25,7 +26,7 @@ var (
) )
func init() { func init() {
if err := LoadPosts("posts/"); err != nil { if err := LoadPosts(models.Cfg.PostsDir); err != nil {
log.Fatalf("%v", err) log.Fatalf("%v", err)
} }
} }