Different transport addresses, incl tcp unix and stdio
This commit is contained in:
parent
0fbdfacb70
commit
d0f690f79b
28
syndicate.sh
28
syndicate.sh
|
@ -11,19 +11,37 @@ declare -A ds_retraction_handlers
|
||||||
|
|
||||||
ds_project() {
|
ds_project() {
|
||||||
# cargo install preserves-tools
|
# cargo install preserves-tools
|
||||||
echo "$1" | preserves-tool convert --indent=no --select "$2"
|
local input="$1"
|
||||||
|
local selector="$2"
|
||||||
|
shift 2
|
||||||
|
echo "$input" | preserves-tool convert --indent=no --select "$selector" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
ds_connect_stdio() {
|
||||||
|
eval "$1"
|
||||||
|
exec 5<&0 6>&1
|
||||||
|
ds_flush
|
||||||
|
ds_mainloop
|
||||||
}
|
}
|
||||||
|
|
||||||
ds_connect() {
|
ds_connect() {
|
||||||
|
local addr=$1
|
||||||
|
case $(ds_project "$addr" ".^") in
|
||||||
|
tcp) nc_args="$(ds_project "$addr" ". 0" --output-format=unquoted) $(ds_project "$addr" ". 1")";;
|
||||||
|
unix) nc_args="-U $(ds_project "$addr" ". 0" --output-format=unquoted)";;
|
||||||
|
stdio) ds_connect_stdio "$2"; return;;
|
||||||
|
*) echo "ds_connect: address '$addr' not supported"; return 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
local f=$(mktemp -u /tmp/ds.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
|
local f=$(mktemp -u /tmp/ds.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
|
||||||
mkfifo $f
|
mkfifo $f
|
||||||
|
|
||||||
trap "rm -f $f" 2 EXIT RETURN
|
trap "rm -f $f" 2 EXIT RETURN
|
||||||
{
|
{
|
||||||
eval "$1"
|
eval "$2"
|
||||||
ds_flush
|
ds_flush
|
||||||
ds_mainloop
|
ds_mainloop
|
||||||
} 5< <(nc -U ./sock <$f) 6>$f
|
} 5< <(nc $nc_args <$f) 6>$f
|
||||||
}
|
}
|
||||||
|
|
||||||
ds_send() {
|
ds_send() {
|
||||||
|
@ -139,7 +157,9 @@ demo() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
ds_object bootk demo_ds_resolved
|
ds_object bootk demo_ds_resolved
|
||||||
ds_connect 'ds_assert "#![1 0]" "<resolve <ref \"syndicate\" [] #x\"a6480df5306611ddd0d3882b546e1977\"> $bootk>"'
|
ds_connect \
|
||||||
|
'<unix "./sock">' \
|
||||||
|
'ds_assert "#![1 0]" "<resolve <ref \"syndicate\" [] #x\"a6480df5306611ddd0d3882b546e1977\"> $bootk>"'
|
||||||
}
|
}
|
||||||
|
|
||||||
demo
|
demo
|
||||||
|
|
Loading…
Reference in New Issue