#!/bin/bash set -o pipefail set -e cpus=$( perl -we ' use strict; require Sys::CPU; my $ncpus = Sys::CPU::cpu_count(); $ncpus *= 1.5; print $ncpus, " " or die $!; print join " ", (0 .. $ncpus-1) or die $!; print "\n" or die $!; ' || echo 3 0 1 2 ) ncpus=${cpus%% *} cpus=${cpus#* } echo >&2 "ncpus=$ncpus cpus=($cpus)" pids=() for cpu in $cpus; do ( ./generate $cpu/$ncpus "$@" | \ ../dpkg/src/dpkg --filter-valid-versions | \ ./escape | \ perl -pe 's#^#refs/tags/#' | \ ../git/git-check-ref-format --report-errors --stdin echo >&2 "cpu $cpu ok" ) & pids+=( $! ) done set +e ok=true for pid in ${pids[*]}; do wait $pid || ok=false done set -e $ok || echo >&2 'BAD' $ok echo '*** OK EVERYTHING IS FINE ***'