def find_command
cli@0.2.0.0 · cli.bend:5160
import cli@0.2.0.0/cli.bend as Cli
import Base
5160def find_command(items: List<&2, Item>, +query: String,
5161 found: Maybe<&2, Item>) -> Maybe<&2, Item>:
5162 match items found:
5163 case _ Some{item}: Some{item}
5164 case Nil{} None{}: None{}
5165 case Sub{+name, about, +children} <> tail None{}:
5166 find_command(tail, query, Bool.pick(Maybe<&2, Item>,
5167 Bool.or(String.eq(query, name),
5168 List.contains(~String, ~String.eq, find_aliases(children), query)),
5169 Some{Sub{name, about, children}}, None{}))
5170 case head <> tail None{}: find_command(tail, query, None{})