Replace uses of strings.Split(N) with strings.Cut()#44381
Replace uses of strings.Split(N) with strings.Cut()#44381tianon merged 28 commits intomoby:masterfrom
strings.Split(N) with strings.Cut()#44381Conversation
This comment was marked as outdated.
This comment was marked as outdated.
b2e2f3c to
07702c1
Compare
api/types/types.go
Outdated
| if kv[0] == "name" { | ||
| secopt.Name = kv[1] | ||
| if k == "name" { | ||
| secopt.Name = k |
There was a problem hiding this comment.
Typo 👀
| secopt.Name = k | |
| secopt.Name = v |
| if len(suffix) > 1 { | ||
| return id[:maxlen] + "-" + suffix[1] | ||
| id, suffix, _ := strings.Cut(id, "-") | ||
| if len(id) > 12 { |
There was a problem hiding this comment.
| if len(id) > 12 { | |
| if len(id) > maxlen { |
? 👀
(I think the previous id[:maxlen] approach is reasonably harmless, right?)
There was a problem hiding this comment.
Well, it panics if id would be shorter than 12; https://go.dev/play/p/IHd0vxxaYh2
Details
// You can edit this code!
// Click here and start typing.
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(getMountpoint("123456789012-"))
fmt.Println(getMountpoint("12345678901-"))
}
const maxlen = 12
func getMountpoint(id string) string {
id, suffix, _ := strings.Cut(id, "-")
id = id[:maxlen]
if suffix != "" {
// preserve filesystem suffix.
id += "-" + suffix
}
return id
}| id, suffix, _ := strings.Cut(id, "-") | ||
| if len(id) > 12 { | ||
| id = id[:maxlen] | ||
| } |
There was a problem hiding this comment.
ie, this could instead be:
| id, suffix, _ := strings.Cut(id, "-") | |
| if len(id) > 12 { | |
| id = id[:maxlen] | |
| } | |
| id, suffix, _ := strings.Cut(id, "-") | |
| id = id[:maxlen] |
07702c1 to
675fb1c
Compare
api/types/types.go
Outdated
| if kv[0] == "name" { | ||
| secopt.Name = kv[1] | ||
| if k == "name" { | ||
| secopt.Name = k |
| if len(suffix) > 1 { | ||
| return id[:maxlen] + "-" + suffix[1] | ||
| id, suffix, _ := strings.Cut(id, "-") | ||
| if len(id) > 12 { |
There was a problem hiding this comment.
Well, it panics if id would be shorter than 12; https://go.dev/play/p/IHd0vxxaYh2
Details
// You can edit this code!
// Click here and start typing.
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(getMountpoint("123456789012-"))
fmt.Println(getMountpoint("12345678901-"))
}
const maxlen = 12
func getMountpoint(id string) string {
id, suffix, _ := strings.Cut(id, "-")
id = id[:maxlen]
if suffix != "" {
// preserve filesystem suffix.
id += "-" + suffix
}
return id
}| id, suffix, _ := strings.Cut(id, "-") | ||
| if len(id) > 12 { | ||
| id = id[:maxlen] | ||
| } |
675fb1c to
1defe9f
Compare
1defe9f to
eebfcec
Compare
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
We're looking for a specific prefix, so remove the prefix instead. Also remove
redundant error-wrapping, as `os.Open()` already provides details in the error
returned;
open /no/such/file: no such file or directory
open /etc/os-release: permission denied
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
Fixes a (theoretical?) panic if ID would be shorter than 12 characters. Also trim the ID _after_ cutting off the suffix. Signed-off-by: Sebastiaan van Stijn <[email protected]>
Signed-off-by: Sebastiaan van Stijn <[email protected]>
eebfcec to
6a91e09
Compare
| proto, addr, ok := strings.Cut(protoAddr, "://") | ||
| if !ok || addr == "" { | ||
| return nil, fmt.Errorf("bad format %s, expected PROTO://ADDR", protoAddr) |
There was a problem hiding this comment.
Turned out this one was overly restrictive, as (contrary to the error message) ADDR is optional here (for fd:// scheme); see #44823
strings.Cut()was added in go1.18, so now that go1.17 is EOL, it should be ok to use. For some of these I was initially a bit on the fence, butstrings.Cutalso is more performant, so switching made sense to do;I split it up per package, but see individual commits for details