# new cron: bash promotion.sh ecoretools cbi-emft-ecoretools-0.9 promote-M.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=M

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

# 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/milestones/

# 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-M.properties 2>~/promo_logs/cbi-emft-ecoretools-0.10-milestones-promo-error.txt 1> ~/promo_logs/cbi-emft-ecoretools-0.10-milestones-promo.txt