27 lines
802 B
Nim
27 lines
802 B
Nim
# 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)
|