#!/bin/bash set -eu newer() { [ "$1" -nt "$2" ] || [ ! -e "$2" ] } online() { ping -c1 "$1" >/dev/null 2>/dev/null } maybe_run_playbook() { if newer "$1.yml" "$1.stamp" && online "$1"; then echo "$1" chronic ./run-playbook "$1.yml" touch "$1.stamp" else echo "SKIPPING $1" fi } maybe_run_ansible() { if newer "$1.yml" "$1.stamp" && online "$1"; then echo "$1" chronic run-ansible "$1.hz" "hosts.$2" "$1.yml" touch "$1.stamp" else echo "SKIPPING $1" fi } maybe_run_playbook exolobe1 maybe_run_playbook exolobe2 maybe_run_playbook exolobe5 maybe_run_playbook holywood2 maybe_run_playbook web maybe_run_playbook atuin.liw.fi maybe_run_playbook mirror-git maybe_run_ansible git.liw.fi git maybe_run_ansible http.liw.fi http maybe_run_ansible irc.liw.fi irc maybe_run_ansible shell-shell.vm.liw.fi shell