12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package main
- import (
- "encoding/json"
- "os"
- )
- // Setting структура конфигурации сервера
- type Setting struct {
- ServerHost string
- ServerPort string
- PgHost string
- PgPort string
- PgUser string
- PgPass string
- PgBase string
- Data string
- Assets string
- Template string
- }
- // Переменная конфигурации
- var cfg Setting
- func init() {
- // Открываем файл конфигурации
- file, e := os.Open("setting.cfg")
- if e != nil {
- // Если файл открыть не удалось, останавливаем работу сервера
- panic("Файл конфигурации не был найден")
- }
- // Отложенный вызов функции. Файл будет закрыт когда функция init завершит работу
- defer file.Close()
- // Получить информацию о файле (размер файла, чтобы знать, сколько байт нужно выделить для его чтения)
- stat, e := file.Stat()
- if e != nil {
- panic("Не удалось получить информацю о файле конфигурации")
- }
- // Создаем переменную массив байтов с размером файла
- bytesForFileRead := make([]byte, stat.Size())
- _, e = file.Read(bytesForFileRead)
- if e != nil {
- panic("Не удалось прочитать файл конфигурации")
- }
- e = json.Unmarshal(bytesForFileRead, &cfg)
- if e != nil {
- panic("Не удалось считать данные файла конфигурации")
- }
- }
|