aboutsummaryrefslogtreecommitdiff
path: root/internal/cmd
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-10 01:48:28 -0400
committerhistoria <[not public]>2026-06-10 01:48:28 -0400
commita226d72e51eecb768b13600303f73483118d9104 (patch)
tree458d15ef049732c15dacc591a830d3beddbedfde /internal/cmd
parent6a0f3d7a252de4b1741cfe5e1c561412c602becc (diff)
downloadthehouseoficarus-a226d72e51eecb768b13600303f73483118d9104.tar.gz
feat: implemented janky object interaction model
Diffstat (limited to 'internal/cmd')
-rw-r--r--internal/cmd/registry.go48
1 files changed, 0 insertions, 48 deletions
diff --git a/internal/cmd/registry.go b/internal/cmd/registry.go
deleted file mode 100644
index e056469..0000000
--- a/internal/cmd/registry.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package cmd
-
-import (
- "fmt"
- "strings"
-)
-
-type Handler func(args []string)
-
-type Command struct {
- Name string
- Aliases []string
- Handler Handler
- MinArgs int
-}
-
-type Registry struct {
- cmds map[string]Command
-}
-
-func NewRegistry() *Registry {
- return &Registry{cmds: make(map[string]Command)}
-}
-
-func (r *Registry) Register(cmd Command) {
- r.cmds[cmd.Name] = cmd
- for _, a := range cmd.Aliases {
- r.cmds[a] = cmd
- }
-}
-
-func (r *Registry) Dispatch(input string) error {
- parts := strings.Fields(input)
- if len(parts) == 0 {
- return nil
- }
- name := strings.ToLower(parts[0])
- cmd, ok := r.cmds[name]
- if !ok {
- return fmt.Errorf("unknown command: %s", name)
- }
- args := parts[1:]
- if len(args) < cmd.MinArgs {
- return fmt.Errorf("usage: %s requires at least %d arguments", cmd.Name, cmd.MinArgs)
- }
- cmd.Handler(args)
- return nil
-}