From 83aac504915a78d49ef01133940de7065e7747a9 Mon Sep 17 00:00:00 2001 From: joott Date: Thu, 31 Jul 2025 09:46:45 -0400 Subject: initial scripts --- rat | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 rat (limited to 'rat') diff --git a/rat b/rat new file mode 100755 index 0000000..1a6bc24 --- /dev/null +++ b/rat @@ -0,0 +1,88 @@ +#!/usr/bin/env bash + +SHARE=$HOME/.local/share/rat + +update_waybar () { + killall -35 waybar +} + +cull_rats () { + pkill -f -A " $(which rat) " +} + +firewall_set () { + case $1 in + disable) + echo $2 > $SHARE/status + sudo ufw disable + notify-send "Firewall has been disabled." ;; + enable) + sudo ufw enable + notify-send -u critical "Firewall has been enabled." + echo 0 > $SHARE/status + update_waybar ;; + *) echo "Invalid argument to firewall_set" > /dev/stderr + exit 1 ;; + esac +} + +for_duration () { + cull_rats + firewall_set disable 1 + endtime=$(($1*60+$(date +%s))) + echo $endtime > $SHARE/data + while [[ $endtime > $(date +%s) ]]; do + update_waybar + sleep 1 + done + firewall_set enable +} + +for_task () { + cull_rats + firewall_set disable 2 + update_waybar + while true; do + sleep 5m + notif="$(notify-send -A open "ask yourself: do I still need the rat to $1?")" + if [[ -n "$notif" ]]; then + kitty --app-id ration bash -i ration + break + fi + done +} + +for_program () { + cull_rats + firewall_set disable 3 + echo $1 > $SHARE/data + echo "$*" > $HOME/out + update_waybar + $@ + firewall_set enable +} + +for_work () { + endtime=$(date -d 1700 +%s) + if [[ $(date +%s) > $endtime ]]; then + notify-send "It's past work hours!" + exit 0 + fi + cull_rats + firewall_set disable 4 + update_waybar + while [[ $(date +%s) < $endtime ]]; do + sleep 1 + done + firewall_set enable +} + +case $1 in + duration) for_duration $2 ;; + task) for_task "$2" ;; + program) for_program ${@:2} ;; + work) for_work ;; + reset) cull_rats; firewall_set enable ;; + *) echo "Invalid positional parameter" > /dev/stderr + exit 1 ;; +esac -- cgit v1.3