выделил в 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
// Инициализация приложения
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()))
// Главные странички
{

View File

@ -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)

View File

@ -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)
}

View File

@ -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 {

View File

@ -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)
}
}