progress.lua
local t = require("terminal")
local p = require("terminal.progress")
local function main()
local spinners = {}
local lst = {}
for name, seq in pairs(p.sprites) do
print(" "..name) lst[#lst+1] = name
end
print(" <-- ticker type")
local r, _ = t.cursor_get()
for i, name in ipairs(lst) do
local done_sprite, done_textattr
if i <= #lst/2 then
done_sprite = "✔ "
done_textattr = {fg = "green", brightness = 3}
end
spinners[#spinners+1] = p.spinner {
sprites = p.sprites[name],
col = 1,
row = r - #lst - 2 + i,
done_textattr = done_textattr,
done_sprite = done_sprite,
}
end
spinners[#spinners+1] = p.spinner {
sprites = p.ticker("please wait...", 30, "Done!"),
col = 1,
row = r - 1,
textattr = {fg = "black", bg = "red", brightness = "normal"},
done_textattr = {brightness = "high"},
}
t.write("Press any key to stop the spinners...")
t.visible(false)
while true do
for _, s in ipairs(spinners) do
s()
end
t.flush()
if t.readansi(0.02) then
break end
end
for _, s in ipairs(spinners) do
s(true)
end
t.visible(true)
t.print()
return true
end
assert(t.initwrap({}, main))