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.position.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.output.write("Press any key to stop the spinners...")
t.cursor.visible.set(false)
while true do
for _, s in ipairs(spinners) do
s()
end
t.output.flush()
if t.input.readansi(0.02) then
break end
end
for _, s in ipairs(spinners) do
s(true)
end
t.cursor.visible.set(true)
t.output.print() end
t.initwrap(main)()