func tryFixServiceName()

in cmd/cloudshell_open/cloudrun.go [121:149]


func tryFixServiceName(name string) (string, error) {
	if name == "" {
		return "", fmt.Errorf("service name can't be empty")
	}

	name = strings.ToLower(name)

	reg := regexp.MustCompile("[^a-z0-9-]+")

	name = reg.ReplaceAllString(name, "-")

	if name[0] == '-' {
		name = fmt.Sprintf("svc%s", name)
	}

	if !unicode.IsLetter([]rune(name)[0]) {
		name = fmt.Sprintf("svc-%s", name)
	}

	if len(name) > 63 {
		name = name[:63]
	}

	for name[len(name)-1] == '-' {
		name = name[:len(name)-1]
	}

	return name, nil
}