#!/bin/bash

PROBES_PATH=/usr/lib/check_mk_agent/pakiti-mitigations/probes

if [ ! -d $PROBES_PATH ] ; then
    exit
fi

set -u

tmp_dir=$(mktemp -d)
trap 'rm -rf "$tmp_dir"' EXIT

probes=()
while IFS= read -r -d '' probe; do
	probes+=("$probe")
done < <(find "$PROBES_PATH" -maxdepth 1 -type f -print0 | sort -z)

pids=()
for index in "${!probes[@]}"; do
	(
		"${probes[$index]}" >"$tmp_dir/$index.output" 2>/dev/null
		printf '%s\n' "$?" >"$tmp_dir/$index.status"
	) &
	pids[$index]=$!
done

for pid in "${pids[@]}"; do
	wait "$pid" || true
done

for index in "${!probes[@]}"; do
	printf '%s exit %s %s\n' \
		$(echo "${probes[$index]}" | sed 's/.*check_//') "$(<"$tmp_dir/$index.status")" "$(cat "$tmp_dir/$index.output")"
done


