Задать вопрос
@kupp9

Как прописать путь к конфигу?

Добрый день, есть ли идеи как можно config.json читать после компиляции из любой директории?

Заранее спасибо!

//Config global
var Config = loadConfig()

//ConfigST struct
type ConfigST struct {
	mutex   sync.RWMutex
	Server  ServerST            `json:"server"`
	Streams map[string]StreamST `json:"streams"`

func loadConfig() *ConfigST {
	var tmp ConfigST
	data, err := ioutil.ReadFile("config.json")
	if err != nil {
		log.Fatalln(err)
	}
	err = json.Unmarshal(data, &tmp)
	if err != nil {
		log.Fatalln(err)
	}
	for i, v := range tmp.Streams {
		v.Cl = make(map[string]viewer)
		tmp.Streams[i] = v
	}
	return &tmp
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@historydev
Mistkerl, drück den Knopf.
Если конфиг не должен предоставляться юзером, включи его байты в бинарник.

import (
	_ "embed"
	"fmt"
)

//go:embed my_config.json
var jsonData []byte

func main() {
	// Выводим встроенные байты
	fmt.Println(string(jsonData))
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Afranius
@Afranius
Из говорящих дольше живут те, что говорят меньше.
обычно конфиги пользователей лежат в хомяках пользователей
типа /home/user/.program/config.json или что-то подобное.
В винде так же.
Определить пользователя, от имени которого запущен бинарник - задачка для детского сада.

Во-первых из переменных окружения, во-вторых для современных многопользовательских систем это классика.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы