#!/usr/bin/env pil
(setq DB "~/.pil/nestping")
(unless (info DB)
(rc DB 'ssh T 'https T 'crates T) )
(de last-vers ()
(let V NIL
(in '(curl "-s" "https://raw.githubusercontent.com/rust-lang/crates.io-index/master/pi/ju/pijul")
(until (eof)
(from "vers\":\"")
(setq V (read))
(line) ) )
V ) )
(de ssh ()
(let
(Now (bool (connect "ssh.pijul.com" 22))
Was (rc DB 'ssh) )
(if2 Was Now
NIL
(mail "localhost" 25 "mpech@envs.net" (quote "mpech@envs.net") "ssh down")
(mail "localhost" 25 "mpech@envs.net" (quote "mpech@envs.net") "ssh up") )
(rc DB 'ssh Now)
(bye) ) )
(de https ()
(let
(Now
(call
'bash
'-c
"http --check-status https://nest.pijul.com/tankf33der/nestping:main/SANLDXIK76PNA.BEAAA > /dev/null")
Was (rc DB 'https))
(if2 Was Now
NIL
(mail "localhost" 25 "mpech@envs.net" (quote "mpech@envs.net") "https down")
(mail "localhost" 25 "mpech@envs.net" (quote "mpech@envs.net") "https up") )
(rc DB 'https Now)
(bye) ) )
(de frutify ()
(let
(Now
(call
'bash
'-c
"https --check-status --follow https://frutify.eu/lv > /dev/null")
Was (rc DB 'frutify))
(if2 Was Now
NIL
(mail "localhost" 25 "mpech@envs.net" (quote "mpech@envs.net") "frutify down")
(mail "localhost" 25 "mpech@envs.net" (quote "mpech@envs.net") "frutify up") )
(rc DB 'frutify Now)
(bye) ) )
(de crates ()
(let (Now (last-vers) Was (rc DB 'crates))
(unless (= Now Was)
(mail "localhost" 25 "mpech@envs.net" "mpech@envs.net" (pack "crates changed: " Now))
(rc DB 'crates Now) )
(bye) ) )