From 26df57e0492beb2ac888007d57983f2a00b50fe1 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sun, 7 Apr 2024 14:16:51 +0100 Subject: [PATCH] msg: add assertion mode --- README.md | 3 ++- src/Tupfile | 3 ++- src/msg.nim | 21 +++++++++++++++------ syndicate_utils.nimble | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 035ebe4..f723d6b 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/src/Tupfile b/src/Tupfile index 472519d..815dc7a 100644 --- a/src/Tupfile +++ b/src/Tupfile @@ -1,4 +1,5 @@ include_rules : foreach *.nim | $(SYNDICATE_PROTOCOL) ./ |> !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 diff --git a/src/msg.nim b/src/msg.nim index 22a98c2..1efd747 100644 --- a/src/msg.nim +++ b/src/msg.nim @@ -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) diff --git a/syndicate_utils.nimble b/syndicate_utils.nimble index 5949562..66a7f04 100644 --- a/syndicate_utils.nimble +++ b/syndicate_utils.nimble @@ -1,6 +1,6 @@ # Package -version = "20240405" +version = "20240407" author = "Emery Hemingway" description = "Utilites for Syndicated Actors and Synit" license = "unlicense"