Compare commits
2 commits
31e4b86fe3
...
04fa68bfed
Author | SHA1 | Date | |
---|---|---|---|
04fa68bfed | |||
ebd99c2295 |
2 changed files with 43 additions and 13 deletions
28
dotlib/cattle.sh
Normal file
28
dotlib/cattle.sh
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
reset-elapsed() {
|
||||||
|
(( last_cmd_at = SECONDS ))
|
||||||
|
}
|
||||||
|
|
||||||
|
ping-timer() {
|
||||||
|
kill -USR1 "$reaper_pid" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
kill-reaper() {
|
||||||
|
kill -KILL "$reaper_pid"
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
trap 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
|
||||||
|
} &
|
||||||
|
|
||||||
|
reaper_pid=$! prompt_cmds+=(ping-timer)
|
||||||
|
trap kill-reaper EXIT
|
|
@ -7,7 +7,7 @@ if (( 10#$month == 3 && 10#$day < 18 )); then
|
||||||
printf "Only %d days left until Saint Patrick's day!\n" "$(( 17 - 10#$day ))"
|
printf "Only %d days left until Saint Patrick's day!\n" "$(( 17 - 10#$day ))"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
holiday=🍀
|
prompt_sym=🍀
|
||||||
elif (( 10#$month == 10 )); then
|
elif (( 10#$month == 10 )); then
|
||||||
if (( 31 - 10#$day == 0 )); then
|
if (( 31 - 10#$day == 0 )); then
|
||||||
printf 'Have a spooky halloween!\n'
|
printf 'Have a spooky halloween!\n'
|
||||||
|
@ -15,7 +15,7 @@ elif (( 10#$month == 10 )); then
|
||||||
printf 'Only %d days left until Halloween!\n' "$(( 31 - 10#$day ))"
|
printf 'Only %d days left until Halloween!\n' "$(( 31 - 10#$day ))"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
holiday=🎃
|
prompt_sym=🎃
|
||||||
elif (( 10#$month == 12 && 10#$day < 26 )); then
|
elif (( 10#$month == 12 && 10#$day < 26 )); then
|
||||||
if (( 25 - 10#$day == 0 )); then
|
if (( 25 - 10#$day == 0 )); then
|
||||||
printf 'Merry Christmas!\n'
|
printf 'Merry Christmas!\n'
|
||||||
|
@ -23,28 +23,30 @@ elif (( 10#$month == 12 && 10#$day < 26 )); then
|
||||||
printf 'Only %d days left until Christmas!\n' "$(( 25 - 10#$day ))"
|
printf 'Only %d days left until Christmas!\n' "$(( 25 - 10#$day ))"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
holiday=🌲
|
prompt_sym=🌲
|
||||||
fi
|
fi
|
||||||
|
|
||||||
setup-prompt() {
|
setup-prompt() {
|
||||||
tput sgr0
|
local cmd
|
||||||
|
|
||||||
|
if [[ -v prompt_cmds[@] ]]; then
|
||||||
|
for cmd in "${prompt_cmds[@]}"; do
|
||||||
|
"$cmd"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -d .git ]]; then
|
if [[ -d .git ]]; then
|
||||||
git_branch=" $(command git branch --show-current)"
|
git_branch="$(command git branch --show-current) "
|
||||||
else
|
else
|
||||||
git_branch=
|
git_branch=""
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
PROMPT_COMMAND=setup-prompt
|
PROMPT_COMMAND=setup-prompt
|
||||||
PS1='\w$git_branch'
|
PS1='\w $git_branch'
|
||||||
|
|
||||||
if [[ -v SSH_CLIENT ]]; then
|
if [[ -v SSH_CLIENT ]]; then
|
||||||
if [[ -v HOSTNAME ]]; then
|
PS1+='${HOSTNAME-"$(hostname)"} '
|
||||||
PS1+=' $HOSTNAME'
|
|
||||||
else
|
|
||||||
PS1+=' $(hostname)'
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PS1+=' ${holiday-λ} '
|
PS1+='${prompt_sym-λ} '
|
||||||
|
|
Loading…
Reference in a new issue