diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2021-10-18 18:22:35 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2021-10-18 18:36:04 +0200 |
commit | f6a8bfcdb31b3a42002e9d1c113bd547ffe5ef29 (patch) | |
tree | ab2f77c023bdc7a324f99c190ac063c582c6c7ac /pkg/config/url.go | |
parent | f2996a1cb8eca70c97f5cd847c2c409a67083392 (diff) | |
download | feed2imap-go-f6a8bfcdb31b3a42002e9d1c113bd547ffe5ef29.tar.gz feed2imap-go-f6a8bfcdb31b3a42002e9d1c113bd547ffe5ef29.tar.bz2 feed2imap-go-f6a8bfcdb31b3a42002e9d1c113bd547ffe5ef29.zip |
Improve Url.String()
Diffstat (limited to 'pkg/config/url.go')
-rw-r--r-- | pkg/config/url.go | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/pkg/config/url.go b/pkg/config/url.go index 7e91411..4b3abf7 100644 --- a/pkg/config/url.go +++ b/pkg/config/url.go @@ -65,18 +65,29 @@ func (u *Url) UnmarshalYAML(value *yaml.Node) (err error) { } func (u Url) String() string { - scheme := u.Scheme + "://" + var sb strings.Builder - var pwd string - if u.Password != "" { - pwd = ":******" + sb.WriteString(u.Scheme) + sb.WriteString("://") + + if u.User != "" { + sb.WriteString(u.User) + if u.Password != "" { + sb.WriteString(":******") + } + sb.WriteRune('@') } - var delim string - if pwd != "" || u.User != "" { - delim = "@" + + sb.WriteString(u.HostPort()) + + if u.Root != "" { + if u.Root[0] != '/' { + sb.WriteRune('/') + } + sb.WriteString(u.Root) } - return scheme + u.User + pwd + delim + u.HostPort() + u.Root + return sb.String() } func (u *Url) HostPort() string { |