# new cron: bash promotion.sh ecoretools cbi-emft-ecoretools-0.9 promote-I.properties

# source dir
# sourceZipsDir=/opt/users/hudsonbuild/.hudson/jobs/cbi-emft-ecoretools-0.9/lastSuccessful/archive/build

# target dir
targetZipsDir=/home/data/httpd/download.eclipse.org/modeling/emft/ecoretools/downloads/drops/0.10.0

# group owner of new files
targetGroup=emftadmin

# type(s) to copy (N, I, M, S, R; default to all)
buildTypes=I,N

# synch method method (add or replace; add = keep adding new builds; replace = keep 1 build per branch)
synchMethod=replace

# if set, update zip will be unpacked into destination dir and use synchMethod above to add or replace contents 
targetUpdateDir=/home/data/httpd/download.eclipse.org/modeling/emft/ecoretools/updates/interim/

# cronjob /opt/public/common/apache-ant-1.7.1/bin/ant -f /opt/users/hudsonbuild/.hudson/jobs/cbi-emft-ecoretools-0.9/workspace/build/org.eclipse.ecoretools.releng/promote.xml -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-emft-ecoretools-0.9/workspace/build/org.eclipse.ecoretools.releng/promote-I.properties 2>~/promo_logs/cbi-emft-ecoretools-0.10-promo-error.txt 1> ~/promo_logs/cbi-emft-ecoretools-0.10-promo.txt
