initial
This commit is contained in:
parent
8d6add49b6
commit
e414682209
5 changed files with 263 additions and 2 deletions
21
README.md
21
README.md
|
|
@ -1,3 +1,20 @@
|
|||
# remind
|
||||
# Remind
|
||||
|
||||
A simple bash script to remind something by stipulated time.
|
||||
A simple bash script to remind something by stipulated time.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
sh <(curl -s https://git.lucasf.dev/public/remind/raw/branch/master/install.sh)
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Example of usage:
|
||||
|
||||
```bash
|
||||
remind do something cool
|
||||
> Time to delay: 15m
|
||||
```
|
||||
|
||||
The time can be (s|m|h)
|
||||
|
|
|
|||
BIN
beep.mp3
Normal file
BIN
beep.mp3
Normal file
Binary file not shown.
149
clock.svg
Normal file
149
clock.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 184 KiB |
31
install.sh
Normal file
31
install.sh
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
main() {
|
||||
local SOUNDDIR="$HOME/.local/share/sounds"
|
||||
local ICONDIR="$HOME/.local/share/icons"
|
||||
local CMDDIR="$HOME/.local/bin/"
|
||||
|
||||
|
||||
if [[ ! -d "./remind" ]]; then
|
||||
git clone https://git.lucasf.dev/public/remind > /dev/null 2>&1
|
||||
if [[ ! -d "$SOUNDDIR" ]]; then
|
||||
mkdir -p "$SOUNDDIR"
|
||||
fi
|
||||
if [[ ! -d "$ICONDIR" ]]; then
|
||||
mkdir -p "$ICONDIR"
|
||||
fi
|
||||
mv $(pwd)/remind/remind $CMDDIR
|
||||
mv $(pwd)/remind/clock.svg $ICONDIR
|
||||
mv $(pwd)/remind/beep.mp3 $SOUNDDIR
|
||||
rm -rf $(pwd)/remind
|
||||
else
|
||||
echo -e "\033[31m[error]\nRemove the remind folder first.\n\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
main
|
||||
if [[ $? -eq 0 ]];then echo "Remind installed"; fi
|
||||
|
||||
# vim: ft=bash:ts=4:sts=4:sw=4
|
||||
64
remind
Executable file
64
remind
Executable file
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
CMD="cancel"
|
||||
SOUND_LOCATION="$HOME/.local/share/sounds"
|
||||
ICON_LOCATION="$HOME/.local/share/icons/clock.svg"
|
||||
|
||||
_execute() {
|
||||
if [[ $TIMECHOOSEN =~ ^[1-9]?[0-9](s|m|h)$ ]]; then
|
||||
sleep $TIMECHOOSEN
|
||||
notify-send -i $ICON_LOCATION "Reminder" "$MSG"
|
||||
ffplay -nodisp -autoexit -hide_banner -loglevel error $SOUND_LOCATION/beep.mp3
|
||||
else
|
||||
echo -e "\033[31m[error]\nThe time must be provided as the example: 10(s|m|h).\n\033[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
_parse() {
|
||||
if [[ $@ == "$CMD" ]]; then
|
||||
_pre_cancel
|
||||
else
|
||||
_remind $@
|
||||
fi
|
||||
}
|
||||
|
||||
_remind() {
|
||||
MSG="$@"
|
||||
|
||||
if [[ -z "$@" ]]; then
|
||||
echo -e "\033[31m[error]\nProvide a remind text first.\n\033[0m"
|
||||
else
|
||||
read -p 'Time to delay: ' TIMECHOOSEN
|
||||
if [[ -z "$TIMECHOOSEN" ]]; then
|
||||
echo -e "\033[31m[error]\nProvide a time.\n\033[0m"
|
||||
else
|
||||
_execute $@ $TIMECHOOSEN &
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_pre_cancel() {
|
||||
NUMOFLINES=$(pgrep -a remind | wc -l)
|
||||
if [[ $NUMOFLINES -le 2 ]]; then
|
||||
echo "No reminders to cancel"
|
||||
else
|
||||
_cancel
|
||||
fi
|
||||
}
|
||||
|
||||
_cancel() {
|
||||
pgrep -a remind | awk -F "remind" -v nl="$NUMOFLINES" '{ if (NR < (nl - 1)) { print "[" NR "]" $NF}}'
|
||||
read -p "Please choose a number to cancel [1-$(($NUMOFLINES - 2))]: " CHOOSE
|
||||
if [[ $CHOOSE =~ ^[1-9]?[0-9] ]]; then
|
||||
if [[ $CHOOSE -le $(($NUMOFLINES - 2)) ]]; then
|
||||
kill $(pgrep -a remind | awk -F " " -v op="$CHOOSE" '{ if (NR == op) { print $1}}')
|
||||
else
|
||||
echo -e "\033[31m[error]\nInvalid option.\n\033[0m"
|
||||
fi
|
||||
else
|
||||
echo -e "\033[31m[error]\nInvalid option.\n\033[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
_parse $@
|
||||
Loading…
Add table
Add a link
Reference in a new issue