43 lines
1.2 KiB
Nim
43 lines
1.2 KiB
Nim
# SPDX-FileCopyrightText: ☭ Emery Hemingway
|
|
# SPDX-License-Identifier: Unlicense
|
|
|
|
## Thin wrapper over `syndicate/drivers/http_driver`.
|
|
|
|
import pkg/preserves, pkg/syndicate
|
|
import pkg/syndicate/drivers/http_driver
|
|
import pkg/taps
|
|
import ../schema/config
|
|
|
|
proc spawnHttpDriver*(turn: var Turn; ds: Cap): Actor {.discardable.}=
|
|
http_driver.spawnHttpDriver(turn, ds)
|
|
during(turn, ds, ?:HttpDriverArguments) do (ds: Cap):
|
|
http_driver.spawnHttpDriver(turn, ds)
|
|
|
|
when isMainModule:
|
|
import syndicate/relays
|
|
|
|
when defined(solo5):
|
|
import solo5
|
|
acquireDevices([("eth0", netBasic)], netAcquireHook)
|
|
|
|
proc envRoute: Route =
|
|
var pr = parsePreserves $solo5_start_info.cmdline
|
|
if result.fromPreserves pr:
|
|
return
|
|
elif pr.isSequence:
|
|
for e in pr:
|
|
if result.fromPreserves e:
|
|
return
|
|
quit("failed to parse command line for route to Syndicate gatekeeper")
|
|
|
|
runActor("main") do (turn: var Turn):
|
|
let ds = newDataspace(turn)
|
|
spawnRelays(turn, ds)
|
|
resolve(turn, ds, envRoute(), spawnHttpDriver)
|
|
|
|
else:
|
|
|
|
runActor("main") do (turn: var Turn):
|
|
resolveEnvironment(turn) do (turn: var Turn; ds: Cap):
|
|
spawnHttpDriver(turn, ds)
|