Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 36 additions & 16 deletions scripts/pomodoro.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,60 @@
# The second argument is the break length.
# Made by Kiailandi (https://github.com/kiailandi)

wseconds=${1:-25}*60;
pseconds=${2:-wseconds/300}*60;
wseconds="${1:-25}*60";
pseconds="${2:-wseconds/300}*60";

usage()
{
echo "Usage: $0 {focus time length} {break length}"
echo "Times given should be integers representing minutes"
echo "Defaults: focus time length = 25 minutes"
echo " break time length = 5 minutes"
}

if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$#" -gt 2 ]; then
echo "The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s."
usage
exit 0
fi

integers='^[0-9]+$'
if ! [[ "$1" =~ $integers ]] || ! [[ "$2" =~ $integers ]]; then
usage
exit 1
fi

# Check os and behave accordingly
if [ "$(uname)" == "Darwin" ]; then
while true; do
date1=$((`date +%s` + $wseconds));
while [ "$date1" -ge `date +%s` ]; do
echo -ne "$(date -u -j -f %s $(($date1 - `date +%s`)) +%H:%M:%S)\r";
date1=$(($(date +%s) + wseconds))
while [ "$date1" -ge $(('date +%s')) ]; do
echo -ne "$(date -u -j -f %s $((date1 - $(date +%s))) +%H:%M:%S)\r"
done
osascript -e 'display notification "Time to walk and rest!" with title "Break"';
read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n';
date2=$((`date +%s` + $pseconds));
while [ "$date2" -gt `date +%s` ]; do
echo -ne "$(date -u -j -f %s $(($date2 - `date +%s`)) +%H:%M:%S)\r";
date2=$(($(date +%s) + pseconds))
while [ "$date2" -ge "$(date +%s)" ]; do
echo -ne "$(date -u -j -f %s $((date2 - $(date +%s))) +%H:%M:%S)\r"
done
osascript -e 'display notification "Time to get back to work" with title "Work"';
read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n';
done
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
elif [ "$(printf "%s" "$(uname -s)" | cut -c 1-5)" == "Linux" ] ; then
while true; do
date1=$((`date +%s` + $wseconds));
while [ "$date1" -ge `date +%s` ]; do
echo -ne "$(date -u --date @$(($date1 - `date +%s` )) +%H:%M:%S)\r";
date1=$(($(date +%s) + wseconds));
while [ "$date1" -ge "$(date +%s)" ]; do
echo -ne "$(date -u --date @$((date1 - $(date +%s))) +%H:%M:%S)\r"
done
notify-send "Break" "Time to walk and rest";
read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n';
date2=$((`date +%s` + $pseconds));
while [ "$date2" -ge `date +%s` ]; do
echo -ne "$(date -u --date @$(($date2 - `date +%s` )) +%H:%M:%S)\r";
date2=$(($(date +%s) + pseconds))
while [ "$date2" -ge "$(date +%s)" ]; do
echo -ne "$(date -u --date @$((date2 - $(date +%s))) +%H:%M:%S)\r"
done
notify-send "Work" "Time to get back to work";
read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n';
done
else
echo -ne "Your OS is currently not supported\n";
fi
fi