#!/bin/sh
set -eu

export DEBIAN_FRONTEND=noninteractive
APT_LOCK_TIMEOUT_SECONDS="${PIXWORKER_APT_LOCK_TIMEOUT_SECONDS:-900}"
APT_LOCK_FILE="${PIXWORKER_APT_LOCK_FILE:-/run/pixworker-apt.lock}"

case "$APT_LOCK_TIMEOUT_SECONDS" in
  ''|*[!0-9]*)
    echo "PIXWORKER_APT_LOCK_TIMEOUT_SECONDS must be a positive integer." >&2
    exit 64
    ;;
esac

exec 9>"$APT_LOCK_FILE"
flock -w "$APT_LOCK_TIMEOUT_SECONDS" 9

apt_get() {
  apt-get \
    -o "DPkg::Lock::Timeout=${APT_LOCK_TIMEOUT_SECONDS}" \
    -o "Acquire::Retries=3" \
    "$@"
}

apt_get update
apt_get install --only-upgrade -y -o Dpkg::Options::=--force-confold pixservice-worker
systemctl restart pixworker.service
