#! /usr/bin/env nix
#! nix shell nixpkgs#docker nixpkgs#bash nixpkgs#gawk --command bash

outdated_msg="Project code is out of date and needs to be upgraded. To remedy this problem immediately, you may reboot your warrior."

label="$1"
label_val="$2"

if (($# != 2)); then
  echo "usage: $0 label label_value"
fi

containers=$(docker ps --format '{{.Names}}' -f "label=${label}=${label_val}")

for container in ${containers[@]}; do
  echo "checking ${container}"

  last_msg=$(docker logs -n 1 "${container}")

  if [[ $last_msg =~ $outdated_msg ]]; then
    echo "${container} is outdated, restarting"
    imageTag=$(docker ps --format '{{.Names}}\t{{.Image}}' -f "name=$container" | grep -w "$container" | awk '{print $NF}')
    docker pull "$imageTag"
    systemctl restart "docker-${container}"
  fi
done