// Copyright (c) 2024-2025-2025-2025-2025 Chakib Ben Ziane <contact@blob42.xyz>  and [`gosuki` contributors](https://github.com/blob42/gosuki/graphs/contributors).
// All rights reserved.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This file is part of GoSuki.
//
// GoSuki is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// GoSuki is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with gosuki.  If not, see <http://www.gnu.org/licenses/>.
package config

func Init(path string) {
	var err error
	log.Debugf("gosuki init config")

	// Check if config file exists
	exists, err := ConfigExists(path)
	if err != nil {
		log.Fatal(err)
	}

	if !exists {
		log.Debug("creating default config", "path", path)
		//NOTE: flags have higher priority than config file
		defaultPath, err := getDefaultConfigPath()
		if err != nil {
			log.Fatal(err)
		}

		if path == defaultPath {
			err = createDefaultConfFile()
			if err != nil {
				log.Fatal(err)
			}
		} else {
			err = createConfFile(path)
			if err != nil {
				log.Fatal(err)
			}

		}
	} else {
		log.Debug("using config", "path", path)
		err = LoadFromTomlFile(path)
		if err != nil {
			log.Fatal(err)
		}
	}
}
