syndicated-open/src/open.nim

26 lines
724 B
Nim

# SPDX-FileCopyrightText: ☭ Emery Hemingway
# SPDX-License-Identifier: Unlicense
import std/[asyncdispatch, os, uri]
import preserves, syndicate, syndicate/relays, syndicate/capabilities
import ./protocol, ./common
proc publishUri(turn: var Turn; ds: Cap) =
for arg in commandLineParams():
if fileExists(arg):
message(turn, ds, Open(uri: protocol.Uri(
scheme: "file", path: arg.absolutePath.toPreserve)))
else:
message(turn, ds, initRecord("open", arg.parseUri.toPreserve))
stop(turn)
proc main =
let route = envRoute()
discard bootDataspace("open") do (root: Cap; turn: var Turn):
resolve(turn, root, route, publishUri)
for i in 0..4: poll(20)
# A hack to exit
main()