summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-04-02 20:00:03 +0200
committerErich Eckner <git@eckner.net>2017-04-02 20:00:03 +0200
commitb12114c6c03f2ce9d11a5d2fe894a78861ca05b3 (patch)
tree57cfd78ea7dc26fc2ec2cb0638ef551d10446ead
downloadcheckVersions-b12114c6c03f2ce9d11a5d2fe894a78861ca05b3.tar.xz
original version
-rw-r--r--.gitignore1
-rwxr-xr-xcheckVersions.in53
2 files changed, 54 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5b58b36
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+checkVersions
diff --git a/checkVersions.in b/checkVersions.in
new file mode 100755
index 0000000..391bb88
--- /dev/null
+++ b/checkVersions.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}"