Difference between revisions of "User:Kr/Concurrent Checkout"
From Apache OpenOffice Wiki
< User:Kr
m (First sketch.) |
m |
||
Line 7: | Line 7: | ||
shell="/bin/sh" | shell="/bin/sh" | ||
CVSserver="anoncvs@anoncvs.services.openoffice.org" | CVSserver="anoncvs@anoncvs.services.openoffice.org" | ||
− | # CVSserver="kr@ | + | # CVSserver="kr@mytunnel" |
split(modules,amodules) | split(modules,amodules) |
Revision as of 12:33, 6 March 2007
#!/usr/bin/awk -f #39 function co(modules,amodules) { shell="/bin/sh" CVSserver="anoncvs@anoncvs.services.openoffice.org" # CVSserver="kr@mytunnel" split(modules,amodules) for (i in amodules) { printf("cvs '-d:pserver:%s:/cvs' co -rSRC680_m203 %s \n",CVSserver,amodules[i]) | shell # printf("cvs '-d:pserver:%s:/cvs' co -rSRC680_m203 %s > /dev/null &\n",CVSserver,amodules[i]) | shell } printf("wait\n") | shell close(shell) } BEGIN { # smodules: module status array ana("instsetoo_native") # ana("instsetoo_native") bmodules="config_office dmake" n = asorti(smodules,dest) for (i in dest) { if (smodules[dest[i]] == 2) { bmodules=bmodules " " dest[i] } } print "checking out needed modules: " bmodules " ..." co(bmodules) } function ana(modules,cnt,recs,line,nf,i,j,module) { split(modules,amodules) # create list of needed modules bmodules="" for (i in amodules) { if (!(amodules[i] in smodules) || smodules[amodules[i]] == 0) { smodules[amodules[i]] = 1 # mark this module as tested bmodules=bmodules " " amodules[i]"/prj/build.lst" } } print "getting build.lst for " bmodules " ..." co(bmodules) modules="" # walk the dependencies for (i in amodules) { # check if the module is there now, other just continue if (getline < (amodules[i]"/prj/build.lst") >= 0) { smodules[amodules[i]] = 2 # mark this module as valid close(amodules[i]"/prj/build.lst") # get dependencies do { cnt = getline line < (amodules[i]"/prj/build.lst") } while(cnt >= 0 && line ~ /^#.*/) close(amodules[i]"/prj/build.lst") if (cnt >= 0) { nf = split(line, recs) j = 4 while(j < nf) { tmp=index(recs[j],":") if (tmp == 0) tmp=1 else tmp=tmp+1 module=substr(recs[j],tmp) if (!(module in smodules)) { modules = modules " " module smodules[module] = 0 } j=j + 1 } } } else smodules[amodules[i]] = 1 # mark this module as invalid } if (length(modules) > 0) ana(modules) }