src

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

hp (799B)


      1 #!/bin/sh -e
      2 
      3 delay=3660
      4 
      5 main() {
      6   test -z "$2" && { echo "usage: ${0##*/} url string log"; exit 1; }
      7 	url="$1"
      8 	string="$2"
      9 	log="$3"
     10 
     11   if up
     12   then was_up || say 'up'
     13   else
     14     was_down && has_been_for_long && say 'still down'
     15     was_down || say 'down'
     16   fi
     17 
     18 }
     19 
     20 up() {
     21   ftp -MVo - "$url" 2>/dev/null| grep -Eq "$string"
     22 }
     23 
     24 was_up() {
     25 	test -f "$log" &&
     26 	tail -n 1 "$log" |
     27 	grep -qE 'up$'
     28 }
     29 
     30 was_down() {
     31 	test -f "$log" &&
     32 	tail -n 1 "$log" |
     33 	grep -qE 'down$'
     34 }
     35 
     36 has_been_for_long() {
     37 	last=$(tail -n 1 "$log" | cut -f1 -d' ')
     38 	now=$(date +%s)
     39 	test "$((now - last))" -gt $delay
     40 }
     41 
     42 say() {
     43 	test -f "$log" &&
     44 	tail -n 1 "$log" >&2
     45 	message "$1" >&2
     46 	log "$1"
     47 }
     48 
     49 log() {
     50 	message "$1" >> "$log"
     51 	exit 0
     52 }
     53 
     54 message() {
     55 	printf '%s %s is %s\n' "$(date '+%s %F %T' )" "$url" "$1"
     56 }
     57 
     58 main "$@"