# SPDX-FileCopyrightText: ☭ Emery Hemingway # SPDX-License-Identifier: Unlicense import std/[json, os, osproc] import preserves import syndicate, syndicate/relays 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))