src

sauce
got clone ssh://anon@src.dalliard.ch/src
log | files | refs

commit 01c8db829de8fc0a67cbf92043e91996ccccb4c0
parent 4060cba33503c05a324892b3d97054f59e0982ca
author: nathanael <nathanael@dalliard.ch>
date:   Tue, 14 Oct 2025 22:42:10 +0000

s2: add hp

diffstat:
As2/cronjobs/user | 2++
As2/dotfiles/bin/hp | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ms2/makefile | 3+++
As2/scripts/cronjobs.sh | 4++++
Ms2/scripts/dotfiles.sh | 3+--
5 files changed, 68 insertions(+), 2 deletions(-)

diff --git a/s2/cronjobs/user b/s2/cronjobs/user @@ -0,0 +1,2 @@ +~/5 * * * * bin/hp https://s1.dalliard.ch s1.dalliard.ch log/s1.log +~/5 * * * * bin/hp https://s2.dalliard.ch s2.dalliard.ch log/s2.log diff --git a/s2/dotfiles/bin/hp b/s2/dotfiles/bin/hp @@ -0,0 +1,58 @@ +#!/bin/sh -e + +delay=3660 + +main() { + test -z "$2" && { echo "usage: ${0##*/} url string log"; exit 1; } + url="$1" + string="$2" + log="$3" + + if up + then was_up || say 'up' + else + was_down && has_been_for_long && say 'still down' + was_down || say 'down' + fi + +} + +up() { + ftp -MVo - "$url" 2>/dev/null| grep -Eq "$string" +} + +was_up() { + test -f "$log" && + tail -n 1 "$log" | + grep -qE 'up$' +} + +was_down() { + test -f "$log" && + tail -n 1 "$log" | + grep -qE 'down$' +} + +has_been_for_long() { + last=$(tail -n 1 "$log" | cut -f1 -d' ') + now=$(date +%s) + test "$((now - last))" -gt $delay +} + +say() { + test -f "$log" && + tail -n 1 "$log" >&2 + message "$1" >&2 + log "$1" +} + +log() { + message "$1" >> "$log" + exit 0 +} + +message() { + printf '%s %s is %s\n' "$(date '+%s %F %T' )" "$url" "$1" +} + +main "$@" diff --git a/s2/makefile b/s2/makefile @@ -12,5 +12,8 @@ dots: host sys: host @./scripts/sysfiles.sh +cron: host + @./scripts/cronjobs.sh + pkg: host @doas pkg_add -l packages >/dev/null diff --git a/s2/scripts/cronjobs.sh b/s2/scripts/cronjobs.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +if [ ! -d "$HOME/log/" ]; then mkdir "$HOME/log/"; fi +crontab "$HOME/src/src/s2/cronjobs/user" diff --git a/s2/scripts/dotfiles.sh b/s2/scripts/dotfiles.sh @@ -2,14 +2,13 @@ src="$HOME/src/src" ln -fsh "$HOME/prv/ssh" "$HOME/.ssh" +ln -fsh "$src/s2/dotfiles/bin" "$HOME/bin" ln -fs "$src/s0/dotfiles/hushlogin" "$HOME/.hushlogin" ln -fs "$src/s0/dotfiles/profile" "$HOME/.profile" ln -fs "$src/s0/dotfiles/shrc" "$HOME/.shrc" ln -fs "$src/s0/dotfiles/exrc" "$HOME/.exrc" - ln -fs "$src/s1/dotfiles/exrc.local" "$HOME/.exrc.local" ln -fs "$src/s1/dotfiles/profile.local" "$HOME/.profile.local" ln -fs "$src/s1/dotfiles/tmux.conf" "$HOME/.tmux.conf" - ln -fs "$src/s2/dotfiles/shrc.local" "$HOME/.shrc.local"