Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

build-pluginutils.xml 3.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project basedir=".">
  3. <import file="build-configutils.xml"/>
  4. <macrodef name="getplugininfo">
  5. <attribute name="file"/>
  6. <attribute name="prefix" default=""/>
  7. <sequential>
  8. <local name="filecontents"/>
  9. <local name="domain.version"/>
  10. <local name="domain.updates"/>
  11. <local name="domain.metadata"/>
  12. <local name="temp.dir"/>
  13. <!-- Extract the plugin.config file -->
  14. <tempfile property="temp.dir" destdir="${java.io.tmpdir}" prefix="plugintmp"/>
  15. <mkdir dir="${temp.dir}"/>
  16. <unzip src="@{file}" dest="${temp.dir}">
  17. <patternset>
  18. <include name="META-INF/plugin.config"/>
  19. </patternset>
  20. </unzip>
  21. <!-- Read the contents and tidy up -->
  22. <loadfile srcfile="${temp.dir}/META-INF/plugin.config" property="filecontents"/>
  23. <delete dir="${temp.dir}"/>
  24. <readdomain contents="${filecontents}" domain="version" outputproperty="domain.version"/>
  25. <readdomain contents="${filecontents}" domain="updates" outputproperty="domain.updates"/>
  26. <readdomain contents="${filecontents}" domain="metadata" outputproperty="domain.metadata"/>
  27. <readvalue domaincontents="${domain.version}" setting="number" outputproperty="@{prefix}version"/>
  28. <readvalue domaincontents="${domain.updates}" setting="id" outputproperty="@{prefix}id"/>
  29. <readvalue domaincontents="${domain.metadata}" setting="name" outputproperty="@{prefix}name"/>
  30. </sequential>
  31. </macrodef>
  32. <macrodef name="bundleplugins">
  33. <attribute name="jar"/>
  34. <element name="plugins" implicit="yes"/>
  35. <sequential>
  36. <local name="temp.dir"/>
  37. <!-- Extract the version.config file -->
  38. <tempfile property="temp.dir" destdir="${java.io.tmpdir}" prefix="plugintmp"/>
  39. <mkdir dir="${temp.dir}"/>
  40. <unzip src="@{jar}" dest="${temp.dir}">
  41. <patternset>
  42. <include name="com/dmdirc/version.config"/>
  43. </patternset>
  44. </unzip>
  45. <!-- Make a directory to drop plugins in -->
  46. <mkdir dir="${temp.dir}/plugins"/>
  47. <!-- Output some boilerplate to the config -->
  48. <echo file="${temp.dir}/com/dmdirc/version.config" append="true">
  49. keysections:
  50. bundledplugins_versions
  51. bundledplugins_versions:
  52. </echo>
  53. <for param="plugin">
  54. <plugins/>
  55. <sequential>
  56. <local name="plugin.version"/>
  57. <local name="plugin.id"/>
  58. <local name="plugin.name"/>
  59. <!-- Grab our plugin's info -->
  60. <getplugininfo prefix="plugin." file="@{plugin}"/>
  61. <!-- Add the information to our config -->
  62. <echo file="${temp.dir}/com/dmdirc/version.config" append="true"> ${plugin.name}=${plugin.version}</echo>
  63. <echo file="${temp.dir}/com/dmdirc/version.config" append="true"/>
  64. <!-- And drop the file in our directory -->
  65. <copy file="@{plugin}" todir="${temp.dir}/plugins" overwrite="true"/>
  66. <echo>Bundling plugin ${plugin.name} version ${plugin.version}</echo>
  67. </sequential>
  68. </for>
  69. <!-- Now jar our new things back up -->
  70. <jar destfile="@{jar}" basedir="${temp.dir}" update="true"/>
  71. <delete dir="${temp.dir}"/>
  72. </sequential>
  73. </macrodef>
  74. </project>