diff options
author | Kris Kennaway <kris@FreeBSD.org> | 2007-07-29 19:41:52 +0000 |
---|---|---|
committer | Kris Kennaway <kris@FreeBSD.org> | 2007-07-29 19:41:52 +0000 |
commit | cc0916c8a0d5444c599fc2b4087bbe0988bd45de (patch) | |
tree | 43645ab952512c20cbd125f2d8aef34bb92d123e /Tools | |
parent | 13e1b025a1111d84f8981c88c2c7a53e5babb68a (diff) | |
download | ports-cc0916c8a0d5444c599fc2b4087bbe0988bd45de.tar.gz ports-cc0916c8a0d5444c599fc2b4087bbe0988bd45de.zip |
Notes
Diffstat (limited to 'Tools')
-rwxr-xr-x | Tools/portbuild/scripts/getmachine | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Tools/portbuild/scripts/getmachine b/Tools/portbuild/scripts/getmachine index 2cc940408a81..fb3e71adecdd 100755 --- a/Tools/portbuild/scripts/getmachine +++ b/Tools/portbuild/scripts/getmachine @@ -17,20 +17,28 @@ if [ "$1" = "*" ]; then exit 1 fi -min=9999 + +min=999999 while [ $# -gt 0 ]; do m=$1 - num=$(cat $m) - if [ $num -lt $min ]; then + + # Pull in maxjobs + . ${pb}/${arch}/portbuild.conf + test -f ${pb}/${arch}/portbuild.${m} && . ${pb}/${arch}/portbuild.${m} + + curjobs=$(cat $m) + weight=$((${curjobs}*1000/${maxjobs})) + + if [ $weight -lt $min ]; then mach=$m - min=$num - elif [ $num -eq $min ]; then + min=$weight + elif [ $weight -eq $min ]; then mach="${mach} ${m}" fi shift done -if [ "$min" = 9999 -o -z "${mach}" ]; then +if [ "$min" = 999999 -o -z "${mach}" ]; then echo "" exit 1 fi @@ -45,11 +53,12 @@ fi . ${pb}/${arch}/portbuild.conf test -f ${pb}/${arch}/portbuild.${mach} && . ${pb}/${arch}/portbuild.${mach} +curjobs=$(cat $mach) # Now that we've found a machine, register our claim in the queue -if [ "$((${min}+1))" -ge "${maxjobs}" ]; then +if [ "$((${curjobs}+1))" -ge "${maxjobs}" ]; then rm ${mach} else - echo $(($min+1)) > ${mach} + echo $(($curjobs+1)) > ${mach} fi # Report to caller |