🧑💻 Added path package
This commit is contained in:
parent
678a0905a0
commit
e04f408f30
|
@ -0,0 +1,22 @@
|
||||||
|
package path
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Shift splits off the first component of p, which will be cleaned of relative
|
||||||
|
// components before processing. head will never contain a slash and tail will
|
||||||
|
// always be a rooted path without trailing slash.
|
||||||
|
//
|
||||||
|
// See: https://blog.merovius.de/posts/2017-06-18-how-not-to-use-an-http-router/
|
||||||
|
//
|
||||||
|
//nolint:nonamedreturns // contains multiple same typed returns
|
||||||
|
func Shift(raw string) (head, tail string) {
|
||||||
|
raw = path.Clean("/" + raw)
|
||||||
|
if i := strings.Index(raw[1:], "/") + 1; i <= 0 {
|
||||||
|
return raw[1:i], raw[i:]
|
||||||
|
}
|
||||||
|
|
||||||
|
return raw[1:], "/"
|
||||||
|
}
|
Loading…
Reference in New Issue