Author: shadzik Date: Tue Oct 6 22:42:40 2009 New Revision: 10709 Modified: toys/stbr/stbr.tcl Log: - add bcond and alt_kernel functionality - version: 0.9
Modified: toys/stbr/stbr.tcl ============================================================================== --- toys/stbr/stbr.tcl (original) +++ toys/stbr/stbr.tcl Tue Oct 6 22:42:40 2009 @@ -8,7 +8,7 @@ set back & set cntr 0 set cvsroot ":pserver:[email protected]:/cvsroot" -set usage "Usage: !stbr \[help\] \[url\] th\|ti \[command \<valid builder command\>\] \[no\]upgrade spec1\[:BRANCH\] spec2\[:BRANCH\] ..." +set usage "Usage: !stbr \[help\] \[url\] th\|ti \[no\]upgrade spec1\[:BRANCH\]\[+bcond+...\]\[-bcond-...\]\[%kernel%...\] spec2\[:BRANCH\]\[+bcond+...\]\[-bcond-...\]\[%kernel%...\] ..." set nickpass "stbr-bot" set cmdtxt "./scripts/cmd.txt" set maintenance "./scripts/maintenance.txt" @@ -182,6 +182,9 @@ set specs ""; append specs $third; append specs " "; append specs [lrange $arg 3 end] set rspecs "" set tspecs "" +set defines "" +set bconds_with "" +set bconds_without "" if {!([string match noupgrade $second] || [string match upgrade $second])} { putserv "privmsg $chan :$nick: $usage"; return 0 } @@ -189,19 +192,117 @@ if {$cntr<1} {incr cntr} {utimer 30 "set cntr 0"; putserv "privmsg $chan :$nick: I reached my STBR time limit (30sec). Please try later."; return 0} if {([string match noupgrade $second])} {set second "test-build"} foreach spec $specs { -if {([string match *:* $spec])} {set splited [split $spec ":"];set spec [lindex $splited 0]; set branch [lindex $splited 1]} {set branch "HEAD"} +if {([string match *:* $spec])} { + set splited [split $spec ":"] + set spec [lindex $splited 0] + set branchstr [lindex $splited 1] + if {([string match *+* $branchstr]) || ([string match *-* $branchstr]) || ([string match *%* $branchstr])} { + if {([string match *%* $branchstr])} { + set bsplited [split $branchstr "%"] + set branchstr [lindex $bsplited 0] + set defines [lrange $bsplited 1 end] + if {([string match *-* $branchstr])} { + set bsplited [split $branchstr "-"] + set branchstr [lindex $bsplited 0] + set bconds_without [lrange $bsplited 1 end] + if {([string match *+* $branchstr])} { + set bsplited [split $branchstr "+"] + set branch [lindex $bsplited 0] + set bconds_with [lrange $bsplited 1 end] + } else { + set branch $branchstr + } + } elseif {([string match *+* $branchstr])} { + set bsplited [split $branchstr "+"] + set branch [lindex $bslited 0] + set bconds_with [lrange $bsplited 1 end] + } + } elseif {([string match *-* $branchstr])} { + set bsplited [split $branchstr "-"] + set branchstr [lindex $bsplited 0] + set bconds_without [lrange $bsplited 1 end] + if {([string match *+* $branchstr])} { + set bsplited [split $branchstr "+"] + set branch [lindex $bsplited 0] + set bconds_with [lrange $bsplited 1 end] + } + } + } else { + set branch $branchstr + } +} else { + set branch "HEAD" + if {([string match *+* $spec]) || ([string match *-* $spec]) || ([string match *%* $spec])} { + if {([string match *%* $spec])} { + set bsplited [split $spec "%"] + set spec [lindex $bsplited 0] + set defines [lrange $bsplited 1 end] + if {([string match *-* $spec])} { + set bsplited [split $spec "-"] + set spec [lindex $bsplited 0] + set bconds_without [lrange $bsplited 1 end] + if {([string match *+* $spec])} { + set bsplited [split $spec "+"] + set spec [lindex $bsplited 0] + set bconds_with [lrange $bsplited 1 end] + } else { + set spec $spec + } + } elseif {([string match *+* $spec])} { + set bsplited [split $spec "+"] + set spec [lindex $bslited 0] + set bconds_with [lrange $bsplited 1 end] + } + } elseif {([string match *-* $spec])} { + set bsplited [split $spec "-"] + set spec [lindex $bsplited 0] + set bconds_without [lrange $bsplited 1 end] + if {([string match *+* $spec])} { + set bsplited [split $spec "+"] + set spec [lindex $bsplited 0] + set bconds_with [lrange $bsplited 1 end] + } + } + } else { + set spec $spec + } +} +if {$bconds_with != ""} { + set flag "--with " + set with "" + foreach bcond $bconds_with { + set bcond $flag$bcond; append bcond " "; append with $bcond + } + set bconds_with $with +} +if {$bconds_without != ""} { + set flag "--without " + set without "" + foreach bcond $bconds_without { + set bcond $flag$bcond; append bcond " "; append without $bcond + } + set bconds_without $without +} +if {$defines != ""} { + set flag "--kernel " + set definedis "" + foreach define $defines { + set define $flag$define; append define " "; append definedis $define + } + set defines $definedis +} if {!([string match *.spec $spec])} { set pkg $spec; append spec ".spec"} {set splited [split $spec "."]; set pkg [lindex $splited 0]} set towho [sendto $dist $spec $branch] if {($towho == 0)} {putserv "privmsg $chan :$nick: There is no such spec ($spec) on branch $branch in PLD's repository."; return 0} set isbanned [banned_spec $spec] if {($isbanned == 0)} {putserv "privmsg $chan :$nick: $spec is banned from being STBRed."; return 0} -lappend rspecs $spec; append rspecs ":$branch (to $towho)" -lappend tspecs $spec; append tspecs ":$branch" +lappend rspecs $spec; append rspecs ":$branch (to $towho, options: $bconds_with $bconds_without $defines)" +lappend tspecs $spec; append tspecs ":$branch (options: $bconds_with $bconds_without $defines)" if {([string match test-build $second])} { - if {[utimer 5 "exec $makereq -d $dist -t $spec:$branch >/dev/null 2>&1"]==0} {putserv "privmsg $chan :$nick: An error occured. Couldn't send test-build request for $spec to builders."; return 1} + if {[utimer 5 "exec $makereq -d $dist -t $bconds_with $bconds_without $defines $spec:$branch >/dev/null 2>&1"]==0} {putserv "privmsg $chan :$nick: An error occured. Couldn't send test-build request for $spec to builders."; return 1} exec sqlite $logfile "INSERT INTO application VALUES('$date','$spec','$branch','stbr','$second','$dist');" } { - if {[exec $script $dist $nick $second $pkg/$spec $branch $towho &]==0} {putserv "privmsg $chan :$nick: An error occured. Couldn't send STBR Mail for $spec to $towho."; return 1} + if {[exec $script $dist $nick $second $pkg/$spec $branch $towho $bconds_with $bconds_without $defines &]==0} {putserv "privmsg $chan :$nick: An error occured. Couldn't send STBR Mail for $spec to $towho."; return 1} exec sqlite $logfile "INSERT INTO application VALUES('$date','$spec','$branch','$towho','$second','$dist');" } } @@ -218,4 +319,4 @@ if {$cntr<1} {incr cntr} {utimer 30 "set cntr 0"; return 1} } -putlog "Send To Builder Request TCL v0.8.1 by shadzik loaded." +putlog "Send To Builder Request TCL v0.9 by shadzik loaded." _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
