2024-08-30 11:25:28 +12:00
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/spf13/viper"
|
2024-08-30 12:21:09 +12:00
|
|
|
"hub.cybercinch.nz/guisea/gosqldump/internal/config/key"
|
2024-08-30 11:25:28 +12:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// fields is the config fields with their default values and descriptions
|
|
|
|
|
var fields = []*Field{
|
|
|
|
|
// LOGS
|
|
|
|
|
{
|
|
|
|
|
key.LogsWrite,
|
|
|
|
|
true,
|
|
|
|
|
"Write logs to file",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key.LogsLevel,
|
|
|
|
|
"info",
|
|
|
|
|
`Logs level.
|
|
|
|
|
Available options are: (from less to most verbose)
|
|
|
|
|
fatal, error, warn, info, debug`,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key.LogsReportCaller,
|
|
|
|
|
false,
|
|
|
|
|
"Whether the logger should report the caller location.",
|
|
|
|
|
},
|
2024-08-30 12:21:09 +12:00
|
|
|
{
|
|
|
|
|
Key: key.MySQLHost,
|
|
|
|
|
DefaultValue: "localhost",
|
|
|
|
|
Description: "The MySQL/MariaDB hostname",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Key: key.MySQLPort,
|
|
|
|
|
DefaultValue: 3306,
|
|
|
|
|
Description: "The MySQL/MariaDB Port to Connect to",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Key: key.MySQLUser,
|
|
|
|
|
DefaultValue: "~",
|
|
|
|
|
Description: "The MySQL/MariaDB Username to connect with",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Key: key.MySQLPassword,
|
|
|
|
|
DefaultValue: "~",
|
|
|
|
|
Description: "The MySQL/MariaDB Password to connect with",
|
|
|
|
|
},
|
2024-08-30 11:25:28 +12:00
|
|
|
//{
|
|
|
|
|
// key.TenantId,
|
|
|
|
|
// "some_client_id",
|
|
|
|
|
// "The TenantID to use with Xero.",
|
|
|
|
|
//},
|
|
|
|
|
//{
|
|
|
|
|
// key.BankAccountId,
|
|
|
|
|
// "a-random-bank-account-id",
|
|
|
|
|
// "Guid for the xero account to use.",
|
|
|
|
|
//},
|
|
|
|
|
// END LOGS
|
|
|
|
|
// BEANSTALK
|
|
|
|
|
//{
|
|
|
|
|
// key.BeanstalkServer,
|
|
|
|
|
// "localhost",
|
|
|
|
|
// "The Beanstalk Server to use",
|
|
|
|
|
//},
|
|
|
|
|
//{
|
|
|
|
|
// key.BeanstalkPort,
|
|
|
|
|
// "11300",
|
|
|
|
|
// "The port to communicate with Beanstalk server",
|
|
|
|
|
//},
|
|
|
|
|
//{
|
|
|
|
|
// key.BeanstalkTube,
|
|
|
|
|
// "visa-transactions",
|
|
|
|
|
// "The tube to use to find our transactions in.",
|
|
|
|
|
//},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func setDefaults() {
|
|
|
|
|
Default = make(map[string]*Field, len(fields))
|
|
|
|
|
for _, f := range fields {
|
|
|
|
|
Default[f.Key] = f
|
|
|
|
|
viper.SetDefault(f.Key, f.DefaultValue)
|
|
|
|
|
viper.MustBindEnv(f.Key)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Default map[string]*Field
|