about summary refs log blame commit diff stats
path: root/lua/pomo.lua
blob: 75e4c1ec537525dd6d98ce8a39131e5f6d68d9b3 (plain) (tree)






































































                                                                        
-- title:  pomo
-- author: eli_oat
-- about:  a very tiny pomodoro timer

local pomo = {
    _version = "2022.03"
}

local defaults = {
    pomoTime = 1500,    -- time for a pomodoro in seconds
    restTime = 600,     -- time for a short rest in seconds
    longRestTime = 900, -- time for a long rest in sseconds
    pomoCount = 0       -- used to count pomodoros before a long rest
}

local pomoTime = defaults.pomoTime
local restTime = defaults.restTime
local longRestTime = defaults.longRestTime
local pomoCount = defaults.pomoCount

local function sleep (a)
    local sec = tonumber(os.clock() + a)
    while (os.clock() < sec) do
    end
end

local function prettyTime (timeInSeconds)
    local minutes = math.floor(timeInSeconds / 60)
    local seconds = timeInSeconds % 60
    local timeDisplay = string.format('%02d:%02d', minutes, seconds)
    return timeDisplay
end

function pomo ()
    os.execute('clear')
    repeat
        io.write('🍅 ' .. prettyTime(pomoTime) .. '\n')
        pomoTime = pomoTime - 1
        sleep(1)
        os.execute('clear')
    until pomoTime == 0

    while pomoTime == 0 and pomoCount < 4 do
        io.write('😴 ' .. prettyTime(restTime) .. '\n')
        restTime = restTime - 1
        sleep(1)
        os.execute('clear')
        while restTime == 0 do
            restTime = defaults.restTime
            pomoTime = defaults.pomoTime
            pomoCount = pomoCount + 1
            pomo()
        end
    end

    while pomoCount == 4 do
        io.write('🍹 LONG REST! ' .. prettyTime(longRestTime) .. '\n')
        longRestTime = longRestTime - 1
        sleep(1)
        os.execute('clear')
        while longRestTime == 0 do
            restTime = defaults.restTime
            pomoTime = defaults.pomoTime
            longRestTime = defaults.longRestTime
            pomoCount = defaults.pomoCount
            pomo()
        end
    end
end

return pomo