From 83ad65c27d8c04e3218f788cc19d4a0dc088198c Mon Sep 17 00:00:00 2001 From: Rob Loranger Date: Mon, 24 Jun 2019 20:37:07 -0700 Subject: [PATCH] add config.TorURL select tor URL based on provided host flag, default host in config or default write.as onion address. in that order of precedence. --- api/api.go | 2 +- config/options.go | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/api/api.go b/api/api.go index eaffaca..b8bda5a 100644 --- a/api/api.go +++ b/api/api.go @@ -28,7 +28,7 @@ func newClient(c *cli.Context, authRequired bool) (*writeas.Client, error) { clientConfig.URL = config.WriteasBaseURL + "/api" } if config.IsTor(c) { - clientConfig.URL = config.TorBaseURL + clientConfig.URL = config.TorURL(c) clientConfig.TorPort = config.TorPort(c) } diff --git a/config/options.go b/config/options.go index fc7813f..047c5c4 100644 --- a/config/options.go +++ b/config/options.go @@ -2,6 +2,7 @@ package config import ( "net/url" + "strings" "github.com/cloudfoundry/jibber_jabber" "github.com/writeas/writeas-cli/log" @@ -38,6 +39,18 @@ func TorPort(c *cli.Context) int { return torPort } +func TorURL(c *cli.Context) string { + flagHost := c.String("host") + if flagHost != "" && strings.HasSuffix(flagHost, "onion") { + return flagHost + } + cfg, _ := LoadConfig(c.App.ExtraInfo()["configDir"]) + if cfg != nil && cfg.Default.Host != "" && strings.HasSuffix(cfg.Default.Host, "onion") { + return cfg.Default.Host + } + return TorBaseURL +} + func Language(c *cli.Context, auto bool) string { if l := c.String("lang"); l != "" { return l