msg: add assertion mode

This commit is contained in:
Emery Hemingway 2024-04-07 14:16:51 +01:00
parent e2b96e39ef
commit 5e075f3a0c
4 changed files with 20 additions and 9 deletions

View File

@ -245,7 +245,8 @@ Sample Syndicate server script:
## msg
A utility that sends messages to `$SYNDICATE_ROUTE`.
A utility that parses its command-line arguments as Preserves and send them as messages to `$SYNDICATE_ROUTE`.
When called as `assert` (by a symlink or a rename) it will make assertions instead.
## PostgreSQL

View File

@ -1,4 +1,5 @@
include_rules
: foreach *.nim | $(SYNDICATE_PROTOCOL) ./<schema> |> !nim_bin |> {bin}
: foreach {bin} |> !assert_built |>
: $(BIN_DIR)/msg |> cp %f %o |> $(BIN_DIR)/beep
: $(BIN_DIR)/msg |> !symlink |> $(BIN_DIR)/beep
: $(BIN_DIR)/msg |> !symlink |> $(BIN_DIR)/assert

View File

@ -1,13 +1,22 @@
# SPDX-FileCopyrightText: ☭ Emery Hemingway
# SPDX-License-Identifier: Unlicense
import std/[sequtils, os]
import std/[sequtils, os, strutils]
import preserves, syndicate, syndicate/relays
setControlCHook(proc () {.noconv.} = quit())
runActor("msg") do (turn: var Turn):
var data = map(commandLineParams(), parsePreserves)
let
data = map(commandLineParams(), parsePreserves)
cmd = paramStr(0).extractFilename.normalize
resolveEnvironment(turn) do (turn: var Turn; ds: Cap):
for e in data:
message(turn, ds, e)
sync(turn, ds) do (turn: var Turn):
stopActor(turn)
case cmd
of "assert":
for e in data:
publish(turn, ds, e)
else: # "msg"
for e in data:
message(turn, ds, e)
sync(turn, ds) do (turn: var Turn):
stopActor(turn)

View File

@ -1,6 +1,6 @@
# Package
version = "20240405"
version = "20240407"
author = "Emery Hemingway"
description = "Utilites for Syndicated Actors and Synit"
license = "unlicense"