graphviz: show topology in multiple lines
This commit is contained in:
parent
fddbe08fc8
commit
c7d3037e9d
11
break.tlv
11
break.tlv
|
@ -580,6 +580,17 @@
|
||||||
> end
|
> end
|
||||||
> end
|
> end
|
||||||
>end
|
>end
|
||||||
|
- __teliva_timestamp: original
|
||||||
|
sep:
|
||||||
|
>-- horizontal separator
|
||||||
|
>function sep(window)
|
||||||
|
> local y, _ = window:getyx()
|
||||||
|
> window:mvaddstr(y+1, 0, '')
|
||||||
|
> local _, cols = window:getmaxyx()
|
||||||
|
> for col=1,cols do
|
||||||
|
> window:addstr('_')
|
||||||
|
> end
|
||||||
|
>end
|
||||||
- __teliva_timestamp: original
|
- __teliva_timestamp: original
|
||||||
render:
|
render:
|
||||||
>function render(window)
|
>function render(window)
|
||||||
|
|
81
graphviz.tlv
81
graphviz.tlv
|
@ -580,6 +580,17 @@
|
||||||
> end
|
> end
|
||||||
> end
|
> end
|
||||||
>end
|
>end
|
||||||
|
- __teliva_timestamp: original
|
||||||
|
sep:
|
||||||
|
>-- horizontal separator
|
||||||
|
>function sep(window)
|
||||||
|
> local y, _ = window:getyx()
|
||||||
|
> window:mvaddstr(y+1, 0, '')
|
||||||
|
> local _, cols = window:getmaxyx()
|
||||||
|
> for col=1,cols do
|
||||||
|
> window:addstr('_')
|
||||||
|
> end
|
||||||
|
>end
|
||||||
- __teliva_timestamp: original
|
- __teliva_timestamp: original
|
||||||
render:
|
render:
|
||||||
>function render(window)
|
>function render(window)
|
||||||
|
@ -1241,12 +1252,7 @@
|
||||||
> window:addstr(node)
|
> window:addstr(node)
|
||||||
> window:addstr(' ')
|
> window:addstr(' ')
|
||||||
> end
|
> end
|
||||||
> y, _ = window:getyx()
|
> sep(window)
|
||||||
> window:mvaddstr(y+1, 0, '')
|
|
||||||
> local lines, cols = window:getmaxyx()
|
|
||||||
> for col=1,cols do
|
|
||||||
> window:addstr('_')
|
|
||||||
> end
|
|
||||||
>end
|
>end
|
||||||
- __teliva_timestamp:
|
- __teliva_timestamp:
|
||||||
>Sat Mar 19 16:33:19 2022
|
>Sat Mar 19 16:33:19 2022
|
||||||
|
@ -1261,12 +1267,7 @@
|
||||||
> window:addstr(node)
|
> window:addstr(node)
|
||||||
> window:addstr(' ')
|
> window:addstr(' ')
|
||||||
> end
|
> end
|
||||||
> local y, x = window:getyx()
|
> sep(window)
|
||||||
> window:mvaddstr(y+1, 0, '')
|
|
||||||
> local lines, cols = window:getmaxyx()
|
|
||||||
> for col=1,cols do
|
|
||||||
> window:addstr('_')
|
|
||||||
> end
|
|
||||||
>end
|
>end
|
||||||
- __teliva_timestamp:
|
- __teliva_timestamp:
|
||||||
>Sat Mar 19 16:35:34 2022
|
>Sat Mar 19 16:35:34 2022
|
||||||
|
@ -1308,3 +1309,59 @@
|
||||||
> end
|
> end
|
||||||
> end
|
> end
|
||||||
>end
|
>end
|
||||||
|
- __teliva_timestamp:
|
||||||
|
>Sat Mar 19 21:05:05 2022
|
||||||
|
toposort:
|
||||||
|
>-- stable sort of nodes in a graph
|
||||||
|
>-- nodes always occur before all their dependencies
|
||||||
|
>-- disconnected nodes are in alphabetical order
|
||||||
|
>function toposort(graph)
|
||||||
|
> -- non-map variables are arrays
|
||||||
|
> -- result = leaves in graph
|
||||||
|
> -- candidates = non-leaves
|
||||||
|
> local inResultMap = {}
|
||||||
|
> local candidatesMap = nodes(graph)
|
||||||
|
> local leavesMap = filter(candidatesMap, function(k, v) return graph[k] == nil end)
|
||||||
|
> local leaves = to_array(leavesMap)
|
||||||
|
> table.sort(leaves)
|
||||||
|
> union(inResultMap, leavesMap)
|
||||||
|
> local result = {leaves}
|
||||||
|
> subtract(candidatesMap, leavesMap)
|
||||||
|
>
|
||||||
|
> function in_result(x, _) return inResultMap[x] end
|
||||||
|
> function all_deps_in_result(k, _) return all(graph[k], in_result) end
|
||||||
|
> while true do
|
||||||
|
> local oldcount = count(candidatesMap)
|
||||||
|
> if oldcount == 0 then break end
|
||||||
|
> local inducteesMap = filter(candidatesMap, all_deps_in_result)
|
||||||
|
> local inductees = to_array(inducteesMap)
|
||||||
|
> table.sort(inductees)
|
||||||
|
> union(inResultMap, inducteesMap)
|
||||||
|
> table.insert(result, 1, inductees)
|
||||||
|
> subtract(candidatesMap, inducteesMap)
|
||||||
|
> if oldcount == count(candidatesMap) then
|
||||||
|
> error('toposort: graph is not connected')
|
||||||
|
> end
|
||||||
|
> end
|
||||||
|
> return result
|
||||||
|
>end
|
||||||
|
- __teliva_timestamp:
|
||||||
|
>Sat Mar 19 21:05:57 2022
|
||||||
|
render_basic_stats:
|
||||||
|
>function render_basic_stats(window)
|
||||||
|
> bold(window, tostring(#Nodes)..' nodes:')
|
||||||
|
> local i = 1
|
||||||
|
> for _, stratum in ipairs(Nodes) do
|
||||||
|
> window:addstr('\n ')
|
||||||
|
> for _, node in ipairs(stratum) do
|
||||||
|
> window:attrset(curses.A_REVERSE)
|
||||||
|
> window:addstr(i)
|
||||||
|
> window:attrset(curses.A_NORMAL)
|
||||||
|
> window:addstr(' ')
|
||||||
|
> window:addstr(node)
|
||||||
|
> window:addstr(' ')
|
||||||
|
> i = i+1
|
||||||
|
> end
|
||||||
|
> end
|
||||||
|
> sep(window)
|
||||||
|
>end
|
||||||
|
|
11
template.tlv
11
template.tlv
|
@ -580,6 +580,17 @@
|
||||||
> end
|
> end
|
||||||
> end
|
> end
|
||||||
>end
|
>end
|
||||||
|
- __teliva_timestamp: original
|
||||||
|
sep:
|
||||||
|
>-- horizontal separator
|
||||||
|
>function sep(window)
|
||||||
|
> local y, _ = window:getyx()
|
||||||
|
> window:mvaddstr(y+1, 0, '')
|
||||||
|
> local _, cols = window:getmaxyx()
|
||||||
|
> for col=1,cols do
|
||||||
|
> window:addstr('_')
|
||||||
|
> end
|
||||||
|
>end
|
||||||
- __teliva_timestamp: original
|
- __teliva_timestamp: original
|
||||||
render:
|
render:
|
||||||
>function render(window)
|
>function render(window)
|
||||||
|
|
Loading…
Reference in New Issue