about summary refs log tree commit diff stats
path: root/p9c/notes.md
Commit message (Expand)AuthorAgeFilesLines
* *elioat2023-05-261-0/+1
* "*"elioat2023-05-251-2/+5
* "*"elioat2023-05-251-2/+7
* "*"elioat2023-05-251-0/+13
3' href='#n33'>33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
-- 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