1
0
mirror of https://github.com/vimagick/dockerfiles.git synced 2024-12-23 01:39:27 +02:00
dockerfiles/memgraph/example/dnslookup
2024-02-23 18:15:20 +08:00

37 lines
855 B
Bash
Executable File

#!/bin/bash
HOST=${1:?DOMAIN or IP is empty}
docker exec -i memgraph_memgraph_1 mgconsole -output-format=csv <<- _CQL_ | sed -e 's/"//g' | tail -n +2 | tr '[],[]' ' ' | gawk -f /dev/fd/3 3<<- "_AWK_" | column -t -i1 -p2 -r3 -H1,2 | sed 's/─/& /'
MATCH p=(n)-[*]->(m)
WHERE any(n in nodes(p) where n.name = '$HOST') AND not exists(()-->(n)) AND not exists((m)-->())
UNWIND nodes(p) AS nn
WITH DISTINCT nn
CALL path.expand(nn,[">"],[],1,1) YIELD result
RETURN extract(i in nodes(result)|i.name);
_CQL_
BEGIN {
split("", cache);
split("", roots);
idx=0;
}
{
if(!($1 in cache)) {
roots[$1] = cache[$1] = ++idx;
}
if(!($2 in cache)) {
cache[$2] = ++idx;
}
delete roots[$2];
print cache[$2], cache[$1], $2;
}
END {
print "0 -1 ."
for(root in roots) {
print cache[root], 0, root;
}
}
_AWK_
# vim: set noai noet: