summaryrefslogtreecommitdiff
path: root/check-versions.in
diff options
context:
space:
mode:
Diffstat (limited to 'check-versions.in')
-rw-r--r--check-versions.in53
1 files changed, 53 insertions, 0 deletions
diff --git a/check-versions.in b/check-versions.in
new file mode 100644
index 0000000..391bb88
--- /dev/null
+++ b/check-versions.in
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+tmpDir="$(mktemp -d)"
+
+declare -A cmds
+declare -A pIDs
+declare -A running
+
+cmds['arch']='ssh nlopc43 eigeneSkripte/archPackages/checkVersions -f -j250'
+cmds['crux']='/usr/src/ports/lastVersion.sh'
+cmds['debian']='ssh router pakete/checkVersions -f'
+
+for dist in "${!cmds[@]}"
+do
+ ( ( time ( ${cmds["${dist}"]} &> "${tmpDir}/${dist}" ) ) 2> "${tmpDir}/${dist}.time" || echo "err: $?" >> "${tmpDir}/${dist}" ) &
+ pIDs["${dist}"]=$!
+ running["${dist}"]=true
+done
+
+set -o pipefail
+
+run=true
+
+while ${run}
+do
+ sleep 1
+ run=false
+ for dist in "${!pIDs[@]}"
+ do
+ if ! ps aux | \
+ awk '{print $2}' | \
+ grep -q "^${pIDs["${dist}"]}\$"
+ then
+ running["${dist}"]=false
+ if [ -s "${tmpDir}/${dist}" ]
+ then
+ sleep 1
+ echo -n "${dist} ("
+ grep '^real' "${tmpDir}/${dist}.time" | \
+ awk '{print $2"):"}'
+ cat "${tmpDir}/${dist}"
+ echo
+ fi
+ rm -f "${tmpDir}/${dist}" "${tmpDir}/${dist}.time"
+ fi
+ if ${running["${dist}"]}
+ then
+ run=true
+ fi
+ done
+done
+
+rmdir "${tmpDir}"