# selah-bend — pure Bend Bible parse / share / linkify (route.bible) # Run: bend main.bend -- "John 3:16" # Publish: bend main.bend --publish import Base import ./parse.bend as P import ./linkify.bend as L def join_args(xs: List<&1, String>) -> String: match xs: case Nil{}: "" case h <> Nil{}: h case h <> t: String.append(h, String.append(" ", join_args(t))) def run_linkify_md(+q: String) -> IO(Unit): IO.print(String.append(L.linkify_markdown(q), "\n")) type MainPh is Data: MainLink{is_link: Bool} def main_go_ph(ph: MainPh, +h: String, t: List<&1, String>) -> IO(Unit): match ph: case MainLink{is_link}: match is_link: case True{}: run_linkify_md(join_args(t)) case False{}: P.run_args(h <> t) def main_go(xs: List<&1, String>) -> IO(Unit): match xs: case Nil{}: P.usage() case +h <> t: main_go_ph(MainLink{String.eq(h, "--linkify")}, h, t) def main() -> IO(Unit): do IO: args : List<&1, String> <- IO.args() main_go(args)