liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit ff3a1905a53aa488b991f127c9d0240bae2b257d
parent 3c353e4affdaef1b15dfe4b11f5b1cbe1b3dfb0a
Author: Daniel Barlow <dan@telent.net>
Date:   Mon, 12 Aug 2024 22:53:07 +0100

pass service to `output` fn in output-template

instead of on command line

Diffstat:
Mpkgs/output-template/Makefile | 2+-
Rpkgs/output-template/example-output/addresses/1/attribute -> pkgs/output-template/example-service/.outputs/addresses/1/attribute | 0
Rpkgs/output-template/example-output/addresses/3/attribute -> pkgs/output-template/example-service/.outputs/addresses/3/attribute | 0
Rpkgs/output-template/example-output/addresses/5/attribute -> pkgs/output-template/example-service/.outputs/addresses/5/attribute | 0
Rpkgs/output-template/example-output/addresses/6/attribute -> pkgs/output-template/example-service/.outputs/addresses/6/attribute | 0
Rpkgs/output-template/example-output/colours/black -> pkgs/output-template/example-service/.outputs/colours/black | 0
Rpkgs/output-template/example-output/colours/blue -> pkgs/output-template/example-service/.outputs/colours/blue | 0
Rpkgs/output-template/example-output/colours/green -> pkgs/output-template/example-service/.outputs/colours/green | 0
Rpkgs/output-template/example-output/colours/red -> pkgs/output-template/example-service/.outputs/colours/red | 0
Rpkgs/output-template/example-output/name -> pkgs/output-template/example-service/.outputs/name | 0
Mpkgs/output-template/example.ini | 4++--
Mpkgs/output-template/output-template.fnl | 13+++++++------
12 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/pkgs/output-template/Makefile b/pkgs/output-template/Makefile @@ -1,3 +1,3 @@ check: - ./output-template ./example-output/ '{{' '}}' < example.ini > output + ./output-template '{{' '}}' < example.ini > output diff -u output example.ini.expected diff --git a/pkgs/output-template/example-output/addresses/1/attribute b/pkgs/output-template/example-service/.outputs/addresses/1/attribute diff --git a/pkgs/output-template/example-output/addresses/3/attribute b/pkgs/output-template/example-service/.outputs/addresses/3/attribute diff --git a/pkgs/output-template/example-output/addresses/5/attribute b/pkgs/output-template/example-service/.outputs/addresses/5/attribute diff --git a/pkgs/output-template/example-output/addresses/6/attribute b/pkgs/output-template/example-service/.outputs/addresses/6/attribute diff --git a/pkgs/output-template/example-output/colours/black b/pkgs/output-template/example-service/.outputs/colours/black diff --git a/pkgs/output-template/example-output/colours/blue b/pkgs/output-template/example-service/.outputs/colours/blue diff --git a/pkgs/output-template/example-output/colours/green b/pkgs/output-template/example-service/.outputs/colours/green diff --git a/pkgs/output-template/example-output/colours/red b/pkgs/output-template/example-service/.outputs/colours/red diff --git a/pkgs/output-template/example-output/name b/pkgs/output-template/example-service/.outputs/name diff --git a/pkgs/output-template/example.ini b/pkgs/output-template/example.ini @@ -1,3 +1,3 @@ -wpa_passphrase={{ secret "colours/black" }} -think = {{ string.format("%q", secret("colours/blue")) }} +wpa_passphrase={{ output("./example-service","colours/black") }} +think = {{ string.format("%q", output("./example-service","colours/blue")) }} argonaut = {{ json_quote "hello\ngoodbye\tnext\027" }} diff --git a/pkgs/output-template/output-template.fnl b/pkgs/output-template/output-template.fnl @@ -20,11 +20,14 @@ (fn [x] (string.format "\\u%04X" (string.byte x)))))) -(fn substitute [text service opening closing] +(fn substitute [text opening closing] (let [delim (.. opening "(.-)" closing) myenv { : string - :secret (fn [x] (service:output x)) + :output + (fn [service-path path] + (let [s (assert (svc.open (.. service-path "/.outputs")))] + (s:output path))) :lua_quote #(string.format "%q" %1) :json_quote (fn [x] (.. "\"" (json-escape x) "\"")) }] @@ -34,10 +37,8 @@ (string.format "missing value for %q" x)))))) (fn run [] - (let [[service-dir opening closing] arg - service (assert (svc.open service-dir)) - out (substitute (: (io.input) :read "*a") service opening closing)] + (let [[opening closing] arg + out (substitute (: (io.input) :read "*a") opening closing)] (io.write out))) - { : run }