def dispatch

cswap-bend-cli@0.1.0.0 · exec.bend:131

import cswap-bend-cli@0.1.0.0/exec.bend as Exec
import Base
import cswap-bend-cli@0.1.0.0/cliops.bend as Cliops
import cswap-bend-cli@0.1.0.0/cmd.bend as Cmd
import cswap-bend-cli@0.1.0.0/args.bend as Args
import cswap-bend-cli@0.1.0.0/tui/run.bend as Tui
import cswap-bend-cli@0.1.0.0/daemon/entry.bend as Entry
import cswap-bend-cli@0.1.0.0/clibase.bend as Clibase

131# One case per command family; a command that arrives later (auto) is one more
132# case here and one more entry in Args.build.cmd.
133def dispatch(+ni: Cliops.Ni, +p: Args.Parsed) -> IO(Cmd.Out):
134  match p:
135    case Args.PHelp{}:
136      IO.pure(Cmd.Out, Cmd.Out{0, help_text(), ""})
137    case Args.PVersion{}:
138      IO.pure(Cmd.Out, Cmd.ok(Clibase.version()))
139    case Args.PBad{msg}:
140      IO.pure(Cmd.Out, Cmd.Out{2, "", msg ++ "\n"})
141    case Args.PTui{ts}:
142      IO.bind(Unit, Cmd.Out, Tui.main(Clibase.affine(ts), Clibase.version()), u => IO.pure(Cmd.Out, Cmd.silent()))
143    case Args.PAuto{ts}:
144      Entry.auto_cmd(ts, Clibase.version())
145    case Args.PConfig{ts, json}:
146      with_ctx(ctx => config_cmd(ctx, ts, json, ni))
147    case _:
148      other_cmd(ni, p)

Uses (18)

Used by (4)