generated from me/template-mit
Add design.
This commit is contained in:
1 parent
b7f2e0d792
commit
15c909d954
1 file changed
+95
-2
@@ -1,3 +1,96 @@
|
|||||||
# template-mit
|
# Sunset Alarm (CLI)
|
||||||
|
|
||||||
Template with MIT license, protected `main` branch, and available `dev` branch.
|
Command line Sunset Alarm app which can be run as a user daemon.
|
||||||
|
|
||||||
|
Sunset Alarm allows a user to receive an alert at a specified amount of minutes
|
||||||
|
before sunset. This may be helpful for starting any practices such as preparing
|
||||||
|
for sungazing, or as a reminder to go and find a campsite before it gets dark.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
() sections are required. [] sections are optional. | denotes multiple options.
|
||||||
|
|
||||||
|
```console
|
||||||
|
sunset-timer (-l LAT:LONG | -t HH24:MI) (-m MINUTES) [-h]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Set an alarm 90 minutes before for your lat/long experiences sunset:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sunset-alarm -l 32.123:-111.111 -m 90
|
||||||
|
```
|
||||||
|
|
||||||
|
Set an alarm 5 minutes after a manually determined sunset time:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sunset-alarm -t 18:00 -m -5
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Recommended installation location is under `/usr/local/*`.
|
||||||
|
|
||||||
|
```console
|
||||||
|
# git clone http://git.hyperling.com/me/sunset-alarm-cli /usr/local/src/sunset_alarm_cli
|
||||||
|
# ln -s /usr/local/src/sunset_alarm_cli/sunset-alarm /usr/local/bin/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Daemonize
|
||||||
|
|
||||||
|
**runit**
|
||||||
|
|
||||||
|
Create the run file:
|
||||||
|
|
||||||
|
```console
|
||||||
|
# vi /etc/sv/sunset-alarm/run:
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
#!/bin/sh -e
|
||||||
|
exec 2>&1
|
||||||
|
chpst -u user /usr/local/bin/sunset-alarm -l 33:-112 -m 15
|
||||||
|
```
|
||||||
|
|
||||||
|
Enable the service:
|
||||||
|
|
||||||
|
```console
|
||||||
|
# ln -s /etc/sv/sunset-alarm /var/services/
|
||||||
|
```
|
||||||
|
|
||||||
|
### i3
|
||||||
|
|
||||||
|
Simply add an exec to the end of your config file.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
echo "exec --no-startup-id /usr/local/bin/sunset-alarm -l 33:-112 -m 15" >> ~/.config/i3/config
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
**Required**
|
||||||
|
|
||||||
|
-m : Accepts a minute value which is used to check if we have approached the
|
||||||
|
alert period before sunset. Can be positive, negative, or 0.
|
||||||
|
|
||||||
|
**Optional**
|
||||||
|
|
||||||
|
-l : Accepts a lat:long value which is used to check Open Meteo for the
|
||||||
|
location's sunset time. This is required if -t is not passed.
|
||||||
|
|
||||||
|
-t : Accepts a time value for sunset time. If this is passed, it bypasses the
|
||||||
|
Open Meteo check and acts as a hardcoded time. The minutes parameter is still
|
||||||
|
required to know when to alert prior to this time.
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
App displays a persistent alert via channels such as `fyi` or `notify-send` once
|
||||||
|
the current time is between (sunset - minutes) and midnight. Even if the system
|
||||||
|
is powered on after the alert time has passed, the program should display the
|
||||||
|
alert until the day has passed.
|
||||||
|
|
||||||
|
App requires an internet connection. If no connection is found, it sleeps for 5
|
||||||
|
minutes and then tries again to retrieve the sunset time. Once the sunset time has
|
||||||
|
been retrieved for the current day, it stops checking Open Meteo until the next
|
||||||
|
day.
|
||||||
Reference in new issue
Block a user