Add http_driver from syndicate-nim
This commit is contained in:
parent
1f099d6bd2
commit
d40c29ecad
3
Tupfile
3
Tupfile
|
@ -1,2 +1,3 @@
|
|||
include_rules
|
||||
: lock.json |> !nim_cfg |> | ./<lock>
|
||||
: |> !nim_lk |> {lockfile}
|
||||
: {lockfile} |> !nim_cfg |> | ./<lock>
|
||||
|
|
|
@ -26,6 +26,10 @@ UnixAddress = <unix @path string>.
|
|||
|
||||
SocketAddress = TcpAddress / UnixAddress .
|
||||
|
||||
HttpDriverArguments = <http-driver {
|
||||
dataspace: #:any
|
||||
}>.
|
||||
|
||||
JsonSocketTranslatorArguments = <json-socket-translator {
|
||||
dataspace: #:any
|
||||
socket: SocketAddress
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
|
||||
pkgs.buildNimPackage {
|
||||
name = "syndicate_utils";
|
||||
propagatedNativeBuildInputs = [ pkgs.pkg-config ];
|
||||
propagatedBuildInputs =
|
||||
[ pkgs.postgresql pkgs.sqlite pkgs.libxml2 pkgs.libxslt ];
|
||||
propagatedNativeBuildInputs =
|
||||
builtins.attrValues { inherit (pkgs) pkg-config solo5; };
|
||||
propagatedBuildInputs = builtins.attrValues {
|
||||
inherit (pkgs) getdns postgresql solo5 sqlite libxml2 libxslt;
|
||||
};
|
||||
lockFile = ./lock.json;
|
||||
src = pkgs.lib.sources.cleanSource ./.;
|
||||
}
|
||||
|
|
|
@ -50,6 +50,12 @@ type
|
|||
XsltArguments* {.preservesRecord: "xslt".} = object
|
||||
`field0`*: XsltArgumentsField0
|
||||
|
||||
HttpDriverArgumentsField0* {.preservesDictionary.} = object
|
||||
`dataspace`* {.preservesEmbedded.}: EmbeddedRef
|
||||
|
||||
HttpDriverArguments* {.preservesRecord: "http-driver".} = object
|
||||
`field0`*: HttpDriverArgumentsField0
|
||||
|
||||
WebhooksArgumentsField0* {.preservesDictionary.} = object
|
||||
`endpoints`*: Table[seq[string], EmbeddedRef]
|
||||
`listen`*: Tcp
|
||||
|
@ -116,6 +122,7 @@ proc `$`*(x: WebsocketArguments | JsonTranslatorArguments | SocketAddress |
|
|||
JsonTranslatorConnected |
|
||||
JsonSocketTranslatorArguments |
|
||||
XsltArguments |
|
||||
HttpDriverArguments |
|
||||
WebhooksArguments |
|
||||
FileSystemUsageArguments |
|
||||
SqliteArguments |
|
||||
|
@ -134,6 +141,7 @@ proc encode*(x: WebsocketArguments | JsonTranslatorArguments | SocketAddress |
|
|||
JsonTranslatorConnected |
|
||||
JsonSocketTranslatorArguments |
|
||||
XsltArguments |
|
||||
HttpDriverArguments |
|
||||
WebhooksArguments |
|
||||
FileSystemUsageArguments |
|
||||
SqliteArguments |
|
||||
|
|
|
@ -9,6 +9,7 @@ import ./syndesizer/[
|
|||
base64_decoder,
|
||||
cache_actor,
|
||||
file_system_usage,
|
||||
http_driver,
|
||||
json_socket_translator,
|
||||
json_translator,
|
||||
pulses,
|
||||
|
@ -20,6 +21,7 @@ runActor("syndesizer") do (turn: var Turn):
|
|||
discard spawnBase64Decoder(turn, ds)
|
||||
discard spawnCacheActor(turn, ds)
|
||||
discard spawnFileSystemUsageActor(turn, ds)
|
||||
discard spawnHttpDriver(turn, ds)
|
||||
discard spawnJsonSocketTranslator(turn, ds)
|
||||
discard spawnJsonStdioTranslator(turn, ds)
|
||||
discard spawnPulseActor(turn, ds)
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
# 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)
|
|
@ -0,0 +1,2 @@
|
|||
define:ipv6Enabled
|
||||
include:"std/assertions"
|
Loading…
Reference in New Issue