Advertisement
Guest User

Untitled

a guest
Jun 1st, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. <project name="Retrieve and Deploy SFDC metadata" default="deployEmptyCheckOnly" basedir=".."
  2. xmlns:sf="antlib:com.salesforce"
  3. xmlns:c="antlib:net.sf.antcontrib"
  4. >
  5.  
  6. <taskdef uri="antlib:com.salesforce"
  7. resource="com/salesforce/antlib.xml"
  8. classpath="${basedir}/build/ant-salesforce.jar"/>
  9. <taskdef uri="antlib:net.sf.antcontrib"
  10. resource="net/sf/antcontrib/antlib.xml"
  11. classpath="${basedir}/build/ant-contrib-1.0b3.jar"/>
  12.  
  13.  
  14. <property file="${basedir}/build/build.properties"/>
  15. <property environment="env"/>
  16.  
  17. <target name="pullEverything" depends="describeMetadata">
  18. <c:trycatch>
  19. <c:try>
  20. <copy file="${srcPath}package.xml" tofile="${srcPath}../tempPackage.xml" force="true"/>
  21. <delete>
  22. <fileset dir="${srcPath}" includes="*"/>
  23. </delete>
  24. </c:try>
  25. <c:catch>
  26. </c:catch>
  27. </c:trycatch>
  28. <mkdir dir="${srcPath}"/>
  29. <antcall target="readMetadata">
  30. </antcall>
  31. <sleep seconds="6"/>
  32. <echo message="copy back...from: ${srcPath}../tempPackage.xml to: ${srcPath}package.xml"></echo>
  33. <delete file="${srcPath}package.xml"/>
  34. <copy file="${srcPath}../tempPackage.xml" tofile="${srcPath}package.xml" force="true"/>
  35. </target>
  36.  
  37. <target name="readMetadata">
  38. <loadfile property="metadataTypes" srcFile="${metadataTypesFilePath}"/>
  39. <c:for list="${metadataTypes}" param="inputLine" delimiter="${line.separator}">
  40. <c:sequential>
  41. <c:if>
  42. <matches string="@{inputLine}" pattern="XMLName:"/>
  43. <c:then>
  44. <c:propertyregex property="XMLName"
  45. input="@{inputLine}"
  46. regexp="XMLName: "
  47. replace=""
  48. override="true"/>
  49. <!--<echo message="${XMLName}"/>-->
  50. </c:then>
  51. </c:if>
  52. <c:if>
  53. <matches string="@{inputLine}" pattern="DirName:"/>
  54. <c:then>
  55. <c:propertyregex property="DirName"
  56. input="@{inputLine}"
  57. regexp="DirName: "
  58. replace=""
  59. override="true"/>
  60. </c:then>
  61. </c:if>
  62. <c:if>
  63. <matches string="@{inputLine}" pattern="InFolder:"/>
  64. <c:then>
  65. <c:propertyregex property="InFolder"
  66. input="@{inputLine}"
  67. regexp="InFolder: "
  68. replace=""
  69. override="true"/>
  70. <!--<echo message="${XMLName} / ${DirName} / ${InFolder}"/>-->
  71. <antcall target="bulkOrFolder">
  72. </antcall>
  73. </c:then>
  74. </c:if>
  75. </c:sequential>
  76. </c:for>
  77. </target>
  78.  
  79. <target name="bulkOrFolder">
  80. <c:if>
  81. <c:or>
  82. <!--<c:equals arg1="${XMLName}" arg2="EmailTemplate"/>-->
  83. </c:or>
  84. <c:then>
  85. <echo level="info">retrieving list for EmailTemplate</echo>
  86. <echo level="info">${basedir}/data/${XMLName}.log</echo>
  87. </c:then>
  88. <c:else>
  89. <c:if>
  90. <c:or>
  91. <c:equals arg1="${InFolder}" arg2="true"/>
  92. <!--<c:equals arg1="${XMLName}" arg2="EmailTemplate"/>-->
  93. <!--<c:equals arg1="${XMLName}" arg2="Document"/>-->
  94. </c:or>
  95. <c:then>
  96. <antcall target="getFolder">
  97. </antcall>
  98. </c:then>
  99. <c:else>
  100. <sf:bulkRetrieve
  101. username="${sfdc.username}"
  102. password="${sfdc.password}"
  103. serverurl="${sfdc.serverurl}"
  104. metadataType="${XMLName}"
  105. retrieveTarget="${srcPath}"
  106. />
  107. <copy file="${srcPath}package.xml" tofile="${srcPath}${XMLName}-Package.xml" force="true"/>
  108. </c:else>
  109. </c:if>
  110. </c:else>
  111. </c:if>
  112. </target>
  113.  
  114. <target name="getFolder">
  115. <!--EmailTemplate doesn't follow the convention like the other folders-->
  116. <property name="folders" value="${XMLName}"/>
  117. <echo>${XMLName}</echo>
  118. <c:propertyregex property="folders"
  119. input="${XMLName}"
  120. regexp="EmailTemplate"
  121. replace="Email"
  122. override="true"/>
  123. <sf:listMetadata
  124. username="${sfdc.username}"
  125. password="${sfdc.password}"
  126. serverurl="${sfdc.serverurl}"
  127. metadataType="${folders}Folder"
  128. resultFilePath="${basedir}/data/${folders}.log"
  129. />
  130. <loadfile property="logfile" srcFile="${basedir}/data/${folders}.log" failonerror="false"/>
  131. <c:for list="${logfile}" param="inputLine" delimiter="${line.separator}">
  132. <c:sequential>
  133. <c:if>
  134. <matches string="@{inputLine}" pattern="FileName:"/>
  135. <c:then>
  136. <c:propertyregex property="folder"
  137. input="@{inputLine}"
  138. regexp="FileName: "
  139. replace=""
  140. override="true"/>
  141. <echo/>
  142. <echo message="inputLine: @{inputLine}"/>
  143. <echo message="folder: ${folder}"/>
  144. <c:propertyregex property="folder"
  145. input="${folder}"
  146. regexp="email/"
  147. replace=""
  148. override="true"/>
  149. <c:propertyregex property="folder"
  150. input="${folder}"
  151. regexp="documents/"
  152. replace=""
  153. override="true"/>
  154. <c:propertyregex property="folder"
  155. input="${folder}"
  156. regexp="workflows/"
  157. replace=""
  158. override="true"/>
  159. <sf:listMetadata
  160. username="${sfdc.username}"
  161. password="${sfdc.password}"
  162. serverurl="${sfdc.serverurl}"
  163. metadataType="${XMLName}"
  164. folder="${folder}"
  165. resultFilePath="${basedir}/data/${folder}.list.txt"
  166. />
  167. <sf:bulkRetrieve
  168. username="${sfdc.username}"
  169. password="${sfdc.password}"
  170. serverurl="${sfdc.serverurl}"
  171. metadataType="${XMLName}"
  172. retrieveTarget="${srcPath}"
  173. containingFolder="${folder}"
  174. />
  175. <copy file="${srcPath}package.xml" tofile="${srcPath}${XMLName}-list-Package.xml" force="true"/>
  176. </c:then>
  177. </c:if>
  178. </c:sequential>
  179. </c:for>
  180. </target>
  181.  
  182. <target name="describeMetadata">
  183. <mkdir dir="${basedir}/data"/>
  184. <echo message="pulling to: ${metadataTypesFilePath}"/>
  185. <sf:describeMetadata
  186. username="${sfdc.username}"
  187. password="${sfdc.password}"
  188. serverurl="${sfdc.serverurl}"
  189. resultFilePath="${metadataTypesFilePath}"/>
  190. </target>
  191.  
  192. <target name="dir.check">
  193. <condition property="dir.exists">
  194. <available file="src/${DirName}" type="dir"/>
  195. </condition>
  196. </target>
  197. </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement