MCPcopy Create free account
hub / github.com/celer-pkg/celer / validatePackageNames

Method validatePackageNames

cmds/cmd_remove.go:85–107  ·  view source on GitHub ↗
(nameVersions []string)

Source from the content-addressed store, hash-verified

83}
84
85func (r *removeCmd) validatePackageNames(nameVersions []string) ([]string, error) {
86 regex := regexp.MustCompile(`^[a-zA-Z0-9_-]+@[a-zA-Z0-9._-]+$`)
87 normalized := make([]string, 0, len(nameVersions))
88
89 for _, nameVersion := range nameVersions {
90 // In Windows PowerShell completion context, "`" can be added before "@",
91 // keep behavior aligned with install/update commands.
92 nameVersion = strings.ReplaceAll(nameVersion, "`", "")
93 nameVersion = strings.TrimSpace(nameVersion)
94
95 if nameVersion == "" {
96 return nil, fmt.Errorf("empty package name")
97 }
98
99 if !regex.MatchString(nameVersion) {
100 return nil, fmt.Errorf("invalid package name format: %s (expected format: name@version)", nameVersion)
101 }
102
103 normalized = append(normalized, nameVersion)
104 }
105
106 return normalized, nil
107}
108
109// removePackages handles the actual package removal.
110func (r *removeCmd) removePackages(nameVersions []string) error {

Calls

no outgoing calls