package main import ( "flag" "time" "gopkg.in/ini.v1" ) // GetConfig fetch configuration func (config *Config) GetConfig() error { var configfile string flag.Usage = Usage flag.StringVar(&configfile, "configfile", "g2g.ini", "config file to use with g2g section") flag.Parse() cfg, err := ini.Load(configfile) if err != nil { return err } g2gsection := cfg.Section("g2g") g2gsection.MapTo(config) return err } // Config is the global config of g2g type Config struct { G2gRequestTimeout time.Duration `ini:"g2g_request_timeout"` G2gThreads int `ini:"g2g_threads"` GitHubMaxPerPage int `ini:"github_max_per_page"` GitHubPageNum int `ini:"github_page_num"` GitHubAuthUsername string `ini:"github_auth_username"` GitHubAuthPassword string `ini:"github_auth_password"` GitHubContentType string GiteaUID int GiteaUsername string `ini:"gitea_username"` GiteaDestUsername string `ini:"gitea_dest_username"` GiteaRepoURLTmpl string `ini:"gitea_repo_url_tmpl"` GiteaOrgsURLTmpl string `ini:"gitea_orgs_url_tmpl"` GiteaMigrateURL string `ini:"gitea_migrate_url"` GiteaAuthToken string `ini:"gitea_auth_token"` GiteaContentType string GiteaMirror bool `ini:"gitea_mirror"` }