123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package util
- import (
- "fmt"
- "net/url"
- "strconv"
- "strings"
- )
- func ParseInt(text string, defaultValue int) int {
- count, parseError := strconv.ParseInt(text, 10, 64)
- if parseError != nil {
- if len(text) > 0 {
- return 0
- }
- return defaultValue
- }
- return int(count)
- }
- func ParseUint64(text string, defaultValue uint64) uint64 {
- count, parseError := strconv.ParseUint(text, 10, 64)
- if parseError != nil {
- if len(text) > 0 {
- return 0
- }
- return defaultValue
- }
- return count
- }
- func ParseFilerUrl(entryPath string) (filerServer string, filerPort int64, path string, err error) {
- if !strings.HasPrefix(entryPath, "http://") && !strings.HasPrefix(entryPath, "https://") {
- entryPath = "http://" + entryPath
- }
- var u *url.URL
- u, err = url.Parse(entryPath)
- if err != nil {
- return
- }
- filerServer = u.Hostname()
- portString := u.Port()
- if portString != "" {
- filerPort, err = strconv.ParseInt(portString, 10, 32)
- }
- path = u.Path
- return
- }
- func ParseHostPort(hostPort string) (filerServer string, filerPort int64, err error) {
- parts := strings.Split(hostPort, ":")
- if len(parts) != 2 {
- err = fmt.Errorf("failed to parse %s\n", hostPort)
- return
- }
- filerPort, err = strconv.ParseInt(parts[1], 10, 64)
- if err == nil {
- filerServer = parts[0]
- }
- return
- }
|