aboutsummaryrefslogtreecommitdiffstats
path: root/lib/data.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lib/data.lua')
-rw-r--r--lib/data.lua39
1 files changed, 0 insertions, 39 deletions
diff --git a/lib/data.lua b/lib/data.lua
index 804398e..6b32f07 100644
--- a/lib/data.lua
+++ b/lib/data.lua
@@ -303,43 +303,4 @@ function M.immich_parse(text)
return out
end
--- nvtable's plain table (`nvtable -C -E`), as bin/updates-sample.sh caches it:
---
--- [personal] foo-bin 1.14.9 -> 1.14.9 !! ~ 1.14.10
--- <repo> <name> <installed> -> <shipped> <marker> [~] [upstream]
---
--- followed by a summary line with the counts. The marker is '!!' (installed
--- behind upstream), 'ok' or '-' (not installed); '~' flags the shipped .info
--- as behind. Upstream appears only when shipped does not already show it.
---
--- Returns the rows as { repo, name, installed, shipped, upstream, behind,
--- bump } with '--' turned into nil, plus .upgrade/.bump/.current/.missing
--- counts, or nil when the text has neither rows nor a summary.
-function M.nvtable_parse(text)
- if type(text) ~= 'string' then return nil end
- local out, seen = {}, false
- local function v(s) return s ~= '--' and s or nil end
- for line in text:gmatch('[^\n]+') do
- local repo, name, inst, ship, rest =
- line:match('^%s*%[(.-)%]%s+(%S+)%s+(%S+)%s+%->%s+(%S+)%s*(.*)$')
- if repo then
- local mark, tail = rest:match('^(%S*)%s*(.*)$')
- local bump = tail:match('^~') ~= nil
- if bump then tail = tail:gsub('^~%s*', '') end
- out[#out + 1] = {
- repo = v(repo), name = name, installed = v(inst), shipped = v(ship),
- upstream = tail:match('^(%S+)'), behind = mark == '!!', bump = bump,
- }
- seen = true
- elseif line:match('to upgrade') then
- out.upgrade = tonumber(line:match('(%d+) to upgrade'))
- out.bump = tonumber(line:match('(%d+) repos? to bump'))
- out.current = tonumber(line:match('(%d+) current'))
- out.missing = tonumber(line:match('(%d+) not installed')) or 0
- seen = true
- end
- end
- return seen and out or nil
-end
-
return M