MyTinyTodo2/mytinytodo/remote/config.go

52 lines
914 B
Go

package remote
import (
"flag"
"os"
)
type Config struct {
remote string
password string
args []string
}
var globalConfig *Config
func NewConfig() (*Config, error) {
globalConfig = &Config{}
if err := globalConfig.fromEnv(); err != nil {
return nil, err
}
if err := globalConfig.fromFlags(); err != nil {
return nil, err
}
return globalConfig, nil
}
func (c *Config) fromFlags() error {
fs := flag.NewFlagSet(os.Args[0], flag.ExitOnError)
remote := fs.String("remote", "https://todo.home.blapointe.com", "remote mytinytodo")
password := fs.String("p", "", "mytinytodo password")
if err := fs.Parse(os.Args[1:]); err != nil {
panic(err)
}
c.remote = *remote
c.password = *password
c.args = fs.Args()
return nil
}
func (c *Config) fromEnv() error {
return nil
}
func getEnvOrDefault(key, def string) string {
if v, ok := os.LookupEnv(key); ok {
return v
}
return def
}