From bf2838c660329895db21de910240a436ff073b19 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Sun, 2 Apr 2017 20:56:00 +0200 Subject: use parallel instead of bash-magic --- check-versions.in | 81 +++++++++++++++++++++++-------------------------------- 1 file changed, 33 insertions(+), 48 deletions(-) diff --git a/check-versions.in b/check-versions.in index 391bb88..ef3ac17 100644 --- a/check-versions.in +++ b/check-versions.in @@ -1,53 +1,38 @@ #!/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 +set -e + +. #ETCDIR#/check-versions.conf + +if [ $# -eq 0 ]; then + + tmpDir="$(mktemp -d)" + + echo "${!cmds[@]}" | \ + tr ' ' '\n' | \ + parallel "$0" "${tmpDir}" "{}" + + for dist in "${!cmds[@]}"; do + if [ -s "${tmpDir}/${dist}.out" ]; then + + echo -n "${dist} (" + grep '^real' "${tmpDir}/${dist}.time" | \ + awk '{print $2"):"}' + cat "${tmpDir}/${dist}.out" + echo + fi done -done -rmdir "${tmpDir}" + rm -rf "${tmpDir}" + +else + + time ( + :; + ( + ${cmds["$2"]} + ) &> "$1/$2.out" + ) 2> "$1/$2.time" + +fi -- cgit v1.2.3-54-g00ecf