# SPDX-FileCopyrightText: ☭ Emery Hemingway # SPDX-License-Identifier: Unlicense # {.passC: staticExec("pkg-config --cflags sqlcipher").} # {.passL: staticExec("pkg-config --libs sqlcipher").} import std/db_sqlite import preserves, syndicate import ./sqlite type Args {.preservesDictionary.}= object database: string dataspace: Ref runActor("main") do (root: Ref; turn: var Turn): connectStdio(root, turn) let queryPat = ?Observe(pattern: !Query) ?? {0: grabLit()} during(turn, root, ?Args) do (path: string, ds: Ref): let db = open(path, "", "", "") during(turn, ds, queryPat) do (statement: string): var query = Query(statement: statement) for row in rows(db, sql statement): add(query.rows, row) discard publish(turn, ds, query) do: close(db)