33 lines
779 B
Go
33 lines
779 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"git.annabunches.net/annabunches/joyful/internal/configparser"
|
|
"git.annabunches.net/annabunches/joyful/internal/logger"
|
|
flag "github.com/spf13/pflag"
|
|
)
|
|
|
|
func getConfigDir(dir string) string {
|
|
configDir := strings.ReplaceAll(dir, "~", "${HOME}")
|
|
return os.ExpandEnv(configDir)
|
|
}
|
|
|
|
func main() {
|
|
var configDir string
|
|
flag.StringVarP(&configDir, "config", "c", "~/.config/joyful", "Directory to read configuration from.")
|
|
flag.Parse()
|
|
configDir = getConfigDir(configDir)
|
|
|
|
config, err := configparser.ParseConfig(configDir)
|
|
switch err.(type) {
|
|
case *configparser.EmptyConfigError:
|
|
config = &configparser.Config{}
|
|
default:
|
|
logger.FatalIfError(err, "Fatal error reading config")
|
|
}
|
|
|
|
fmt.Printf("Config: %v\n", config)
|
|
}
|