46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
// Package config provides configuration management for the application, allowing for easy loading and parsing of configuration files, environment variables, and command-line arguments. It supports various formats such as JSON, YAML, and TOML, and provides a unified interface for accessing configuration values throughout the application.
|
|
package config
|
|
|
|
type ScratchConfig struct {
|
|
Dir string
|
|
TemplateName string
|
|
}
|
|
|
|
type DailyConfig struct {
|
|
Dir string
|
|
TemplateName string
|
|
FilenameFormat string
|
|
}
|
|
|
|
type Config struct {
|
|
VaultPath string
|
|
TemplateDir string
|
|
ScratchNote ScratchConfig
|
|
DailyNote DailyConfig
|
|
}
|
|
|
|
func (c *Config) SetDefaults() {
|
|
if c.TemplateDir == "" {
|
|
c.TemplateDir = "templates"
|
|
}
|
|
|
|
if c.ScratchNote.Dir == "" {
|
|
c.ScratchNote.Dir = "scratch"
|
|
}
|
|
|
|
if c.ScratchNote.TemplateName == "" {
|
|
c.ScratchNote.TemplateName = "scratch.md"
|
|
}
|
|
|
|
if c.DailyNote.Dir == "daily" {
|
|
c.DailyNote.Dir = "daily"
|
|
}
|
|
|
|
if c.DailyNote.TemplateName == "" {
|
|
c.DailyNote.TemplateName = "daily.md"
|
|
}
|
|
|
|
if c.DailyNote.FilenameFormat == "" {
|
|
c.DailyNote.FilenameFormat = "2006-01-02.md"
|
|
}
|
|
}
|