dotfiles/dotlib/generic-post/cattle.sh

54 lines
879 B
Bash
Raw Normal View History

2022-10-25 00:34:42 +00:00
cattle-reset-elapsed() {
(( last_cmd_at = SECONDS ))
}
2022-10-25 00:34:42 +00:00
cattle-ping-timer() {
2022-10-21 21:33:20 +00:00
kill -USR1 "$reaper_pid"
}
2022-10-25 00:34:42 +00:00
cattle-slay-reaper() {
kill -KILL "$reaper_pid"
}
cd() {
command cd "$@"
printf %s "$PWD" > /tmp/iterm2-prev-dir.txt
}
{
2022-10-24 08:50:38 +00:00
trap "" INT
2022-10-25 00:34:42 +00:00
trap cattle-reset-elapsed USR1
last_cmd_at=0
while sleep 1; do
(( elapsed = SECONDS - last_cmd_at ))
if (( elapsed > 600 )); then
kill -KILL "$$"
exit
fi
done
} &
2022-10-25 00:34:42 +00:00
reaper_pid=$! PROMPT_COMMAND+=(cattle-ping-timer)
trap cattle-slay-reaper EXIT
if [[ -f /tmp/iterm2-prev-dir.txt ]]; then
2022-10-24 10:23:52 +00:00
cur_time=$(date +%s)
last_mod=$(stat -f%c /tmp/iterm2-prev-dir.txt)
2022-10-24 10:23:52 +00:00
if (( cur_time - last_mod > 1200 )); then
rm -f /tmp/iterm2-prev-dir.txt
else
dir=$(</tmp/iterm2-prev-dir.txt)
if [[ -d $dir ]]; then
command cd "$dir"
fi
unset dir
fi
2022-10-24 10:23:52 +00:00
unset cur_time last_mod
fi