27 lines
815 B
Go
27 lines
815 B
Go
package cmd
|
|
|
|
import (
|
|
"axolotl/models"
|
|
"axolotl/service"
|
|
"strings"
|
|
)
|
|
|
|
// parseRelInput parses a rel string into a RelInput.
|
|
//
|
|
// Formats:
|
|
// - "prefix::value" → property rel with no target (tag)
|
|
// - "relname:target" → edge rel with a target node
|
|
// - "tagname" → simple label rel with no target (alias for --tag)
|
|
func parseRelInput(s string) (service.RelInput, error) {
|
|
if strings.Contains(s, "::") {
|
|
// Property: name::value — no target node.
|
|
return service.RelInput{Type: models.RelType(s), Target: ""}, nil
|
|
}
|
|
if idx := strings.Index(s, ":"); idx >= 0 {
|
|
// Edge rel: relname:target.
|
|
return service.RelInput{Type: models.RelType(s[:idx]), Target: s[idx+1:]}, nil
|
|
}
|
|
// Simple label tag — no target node.
|
|
return service.RelInput{Type: models.RelType(s), Target: ""}, nil
|
|
}
|