52 lines
914 B
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
|
|
}
|