diff --git a/README.md b/README.md index 68bdfc7..3314d2c 100644 --- a/README.md +++ b/README.md @@ -13,13 +13,13 @@ Forked from [ofabricio/capture](https://github.com/ofabricio/capture). #### Settings -| param | description | -|--------------|-------------| -| `-url` | **Required.** Set the url you want to proxy | -| `-port` | Set the proxy port. Default: *9000* | -| `-dashboard` | Set the dashboard port. Default: *9001* | -| `-captures` | Set how many captures to show in the dashboard. Default: *16* | - +| param | description | +| -------------- | ------------- | +| `-url` | **Required.** Set the url you want to proxy | +| `-port` | Set the proxy port. Default: *9000* | +| `-dashboard` | Set the dashboard port. Default: *9001* | +| `-captures` | Set how many captures to show in the dashboard. Default: *16* | +| `-config` | Set the configuration file. Default: *.capture.ini* | You can create a file named `.capture.ini` and set the configuration inside: @@ -37,10 +37,9 @@ address. Hence, calling `http://localhost:9000/users/1` is like calling `http:// *Capture* saves all requests and responses so that you can see them in the dashboard. - ## Dashboard -To access the dashboard go to `http://localhost:9001/` +To access the dashboard go to `http://127.0.0.1:9001/` ##### Preview diff --git a/config.go b/config.go index c571ebe..4344540 100644 --- a/config.go +++ b/config.go @@ -21,32 +21,34 @@ func ReadConfig() Config { defaultProxyPort := "9000" defaultDashboardPort := "9001" defaultMaxCaptures := 16 - - configFile := ".capture.ini" - - if _, err := os.Stat(configFile); err == nil { - cfg, err := ini.Load(configFile) - - if err != nil { - fmt.Printf("Fail to read file %s: %v", configFile, err) - os.Exit(1) - } - - section := cfg.Section("") - - defaultTargetURL = section.Key("url").MustString(defaultTargetURL) - defaultProxyPort = section.Key("port").MustString(defaultProxyPort) - defaultDashboardPort = section.Key("dashboard").MustString(defaultDashboardPort) - defaultMaxCaptures = section.Key("captures").MustInt(defaultMaxCaptures) - } + defaultConfigFile := ".capture.ini" targetURL := flag.String("url", defaultTargetURL, "Required. Set the url you want to proxy") + configFile := flag.String("config", defaultConfigFile, "Set the configuration file") proxyPort := flag.String("port", defaultProxyPort, "Set the proxy port") dashboardPort := flag.String("dashboard", defaultDashboardPort, "Set the dashboard port") maxCaptures := flag.Int("captures", defaultMaxCaptures, "Set how many captures to show in the dashboard") flag.Parse() + if _, err := os.Stat(*configFile); err == nil { + cfg, err := ini.Load(*configFile) + + if err != nil { + fmt.Printf("Fail to read file %s: %v", *configFile, err) + os.Exit(1) + } + + section := cfg.Section("") + + return Config{ + TargetURL: section.Key("url").MustString(*targetURL), + ProxyPort: section.Key("port").MustString(*proxyPort), + MaxCaptures: section.Key("captures").MustInt(*maxCaptures), + DashboardPort: section.Key("dashboard").MustString(*dashboardPort), + } + } + return Config{ TargetURL: *targetURL, ProxyPort: *proxyPort,