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}