package main

import (
	"bufio"
	"log"
	"os"
	"strings"

	"go.wit.com/lib/gui/cloudflare"
)

var configfile string = ".config/wit/cloudflare"

func saveConfig() {
	log.Println("TODO")
}

func readConfig() {
	homeDir, err := os.UserHomeDir()
	if err != nil {
		log.Println("searchPaths() error. exiting here?")
	}
	filename := homeDir + "/" + configfile
	log.Println("filename =", filename)

	readFileLineByLine(filename)
	// os.Exit(0)
}

// readFileLineByLine opens a file and reads through each line.
func readFileLineByLine(filename string) error {
	// Open the file.
	file, err := os.Open(filename)
	if err != nil {
		return err
	}
	defer file.Close()

	log.Println("readFileLineByLine() =", filename)

	// Create a new Scanner for the file.
	scanner := bufio.NewScanner(file)

	// Read through each line using scanner.
	for scanner.Scan() {
		var newc *cloudflare.ConfigT
		newc = new(cloudflare.ConfigT)

		line := scanner.Text()
		parts := strings.Fields(line)

		if len(parts) < 4 {
			log.Println("readFileLineByLine() SKIP =", parts)
			continue
		}

		newc.Domain = parts[0]
		newc.ZoneID = parts[1]
		newc.Auth = parts[2]
		newc.Email = parts[3]

		cloudflare.Config[parts[0]] = newc
		log.Println("readFileLineByLine() =", newc.Domain, newc.ZoneID, newc.Auth, newc.Email)
	}

	// Check for errors during Scan.
	if err := scanner.Err(); err != nil {
		return err
	}

	return nil
}