config.go

 1// SPDX-FileCopyrightText: 2022 Amolith <amolith@secluded.site>
 2//
 3// SPDX-License-Identifier: BSD-2-Clause
 4
 5package main
 6
 7import (
 8	"log"
 9	"os"
10
11	yaml "gopkg.in/yaml.v2"
12)
13
14func (m *model) parseConfig(configFile *string) {
15	configBytes, err := os.ReadFile(*configFile)
16	if err != nil {
17		log.Println("Config file not found, writing default values to", *flagConfig)
18		err = writeDefaultConfig(*flagConfig)
19		if err != nil {
20			log.Fatal("Error creating default config:", err)
21		}
22		os.Exit(0)
23	}
24	err = yaml.Unmarshal(configBytes, m)
25}
26
27// writeDefaultConfig takes a config file path as its argument and writes the
28// default config to that path
29func writeDefaultConfig(configFile string) error {
30	file, err := os.Create(configFile)
31	if err != nil {
32		return err
33	}
34	defer file.Close()
35
36	_, err = file.Write([]byte(`listen: 127.0.0.1:1313
37accessToken: CHANGEME
38databasePath: badger_db`))
39	if err != nil {
40		return err
41	}
42	return nil
43}