39 lines
1.1 KiB
Nim
39 lines
1.1 KiB
Nim
# SPDX-FileCopyrightText: ☭ 2021 Emery Hemingway
|
|
# SPDX-License-Identifier: Unlicense
|
|
|
|
import std/[asyncdispatch, os, parseopt, xmlparser, xmltree]
|
|
import preserves, preserves/parse, preserves/xmlhooks
|
|
import syndicate,
|
|
syndicate/[actors, capabilities, relay]
|
|
|
|
import svui
|
|
type Svui = svui.Svui[Ref]
|
|
|
|
proc main() =
|
|
proc quitHook() {.noconv.} = quit()
|
|
setControlCHook(quitHook)
|
|
|
|
waitFor runActor("client") do (turn: var Turn):
|
|
|
|
let cap = mint()
|
|
|
|
connectUnix(turn, "/run/syndicate/ds", cap) do (turn: var Turn; a: Assertion) -> TurnAction:
|
|
let ds = unembed a
|
|
|
|
for kind, arg, _ in getopt():
|
|
if kind == cmdArgument:
|
|
let megs = getFileSize(arg) shr 20
|
|
if megs > 1:
|
|
stderr.writeLine arg, " is ", megs, " MiB, not publishing"
|
|
else:
|
|
var xml = loadXml(arg)
|
|
if xml.tag != "svg":
|
|
stderr.writeLine arg, " not recognized as SVG"
|
|
var pr = toPreserve(Svui(), Ref)
|
|
pr[1] = toPreserve(xml, Ref)
|
|
discard publish(turn, ds, pr)
|
|
|
|
stderr.writeLine "done"
|
|
|
|
main()
|