29 lines
827 B
Nim
29 lines
827 B
Nim
# SPDX-FileCopyrightText: ☭ 2022 Emery Hemingway
|
|
# SPDX-License-Identifier: Unlicense
|
|
|
|
import std/[asyncdispatch, os]
|
|
from std/sequtils import map
|
|
import syndicate, syndicate/capabilities
|
|
import ./protocol
|
|
|
|
proc unixSocketPath: string =
|
|
result = getEnv("SYNDICATE_SOCK")
|
|
if result == "":
|
|
result = getEnv("XDG_RUNTIME_DIR", "/run/user/1000") / "dataspace"
|
|
|
|
proc mintCap: SturdyRef =
|
|
var key: array[16, byte]
|
|
mint(key, "syndicate")
|
|
|
|
bootDataspace("main") do (root: Ref; turn: var Turn):
|
|
connectUnix(turn, unixSocketPath(), mintCap()) do (turn: var Turn; ds: Ref):
|
|
var uris = commandLineParams().map do (param: string) -> string:
|
|
if fileExists param:
|
|
"file://" & absolutePath(param)
|
|
else:
|
|
param
|
|
message(turn, ds, XdgOpen(uris: uris))
|
|
|
|
for i in 0..7: poll(20)
|
|
# A hack to exit
|