@@ -116,21 +116,25 @@ laptimer() = showtimes(canonical=true)
116116 alarm(hours, minutes, seconds;
117117 action = () -> @info("TickTock: time's up"))
118118
119- Run an alarm, with the option of providing a anonymous function that executes
119+ Set an alarm, with the option of providing a anonymous function that executes
120120when alarm fires.
121121
122122```
123123using Dates
124124
125125@async alarm(0, 5, 0, action = ()-> println("TickTock.jl: 5 minutes is up!"))
126+
127+ @async alarm(0, 0, 5, action = () -> run(`say "your alarm is ringing, sir"`), alarmname="tea's up") # uses macOS speech
126128```
127129"""
128130function alarm (hours, minutes, seconds;
129- action= () -> @info (" TickTock: alarm: time's up" ))
131+ action= () -> @info (" TickTock: alarm" ),
132+ alarmname= " TickTock alarm" )
130133 tick ()
131134 while true
132135 sleep (5 )
133136 if peektimer () > hours * 60 * 60 + minutes * 60 + seconds
137+ @info alarmname
134138 action ()
135139 tock ()
136140 break
@@ -152,7 +156,7 @@ using Dates
152156
153157dt = now() + Dates.Minute(1)
154158
155- @async alarm(dt, action=() -> println("TickTock.jl: Ready!"))
159+ @async alarm(dt, action = () -> println("TickTock.jl: Ready!"))
156160```
157161
158162```
@@ -162,21 +166,22 @@ dt = now() + Dates.Minute(1)
162166TODO alarms don't appear in timer lists...
163167"""
164168function alarm (dt:: DateTime ;
165- action = () -> @info (" TickTock: alarm: time's up" ))
169+ action = () -> @info (" TickTock: alarm" ),
170+ alarmname = " TickTock alarm" )
166171 p = Dates. Period (dt - now ())
167172 secs = round (p, Dates. Second). value
168173 m, s = divrem (secs, 60 )
169174 h, m = divrem (m, 60 )
170- @info " TickTock: setting alarm for $h hours, $m minutes, $s seconds"
171- alarm (h, m, s, action= action)
175+ @info " TickTock: \" $(alarmname) \" alarm for $h hours, $m minutes, $s seconds"
176+ alarm (h, m, s, action= action, alarmname = alarmname )
172177end
173178
174179"""
175180@async alarm(now() + Dates.Second(5), action = () -> TickTock.alarmnotify("time's up"))
176181
177182TODO this is macOS only...
178183"""
179- function alarmnotify (subtitle= " time's up " )
184+ function alarmnotify (subtitle= " TickTock alarm " )
180185 ! Sys. isapple () && exit ()
181186 command = """
182187 display notification with title "TickTock.jl" subtitle \" $(subtitle) \" sound name "frog"
0 commit comments