#!/usr/bin/env bash
set -euo pipefail

docker_exec="/usr/bin/docker"
date_exec="/usr/bin/date"

$docker_exec ps --no-trunc -q | while read -r id; do
    now=$($date_exec +%s)
    created_at=$($date_exec --date "$($docker_exec inspect -f '{{.Created}}' $id)" +'%s')
    run_duration=$((now - created_at))
    if [ "$run_duration" -ge "$1" ]; then
        container_info=$($docker_exec ps --filter id=${id} --format "id: {{.ID}} name: {{.Names}} image: {{.Image}}")
        image=$($docker_exec ps --filter id=${id} --format "{{.Image}}")
        echo "Killing container ${container_info}, run duration ${run_duration} ..."
        $docker_exec kill $id
    fi
done
