syndicate_utils/src/json_translator.nim

32 lines
866 B
Nim

# SPDX-FileCopyrightText: ☭ Emery Hemingway
# SPDX-License-Identifier: Unlicense
import std/[json, os, osproc]
import preserves # , preserves/jsonhooks,
import syndicate
from preserves/jsonhooks import toPreserveHook
import ./schema/config, ./json_messages
proc runChild: string =
let params = commandLineParams()
if params.len < 1:
stderr.writeLine "not enough parameters"
quit 1
let
cmd = params[0]
args = params[1..params.high]
try: result = execProcess(command=cmd, args=args, options={poUsePath})
except CatchableError as err:
quit("execProcess failed: " & err.msg)
if result == "":
stderr.writeLine "no ouput"
quit 1
runActor("main") do (ds: Cap; turn: var Turn):
connectStdio(ds, turn)
let js = runChild().parseJson()
message(turn, ds, RecvJson(data: js))
discard publish(turn, ds, RecvJson(data: js))