Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

createPluginJar.sh 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #!/bin/bash
  2. # This script will create a plugin jar file for a given plugin.
  3. if [ "${1}" = "" -o "${2}" = "" ]; then
  4. echo "Usage Example: ${0} com.dmdirc.addons.windowstatus WindowStatusPlugin"
  5. echo "The above would create WindowStatusPlugin.jar in the plugins/ folder of the current dir"
  6. exit;
  7. fi
  8. pluginname=${1}
  9. foldername=${pluginname//.//}
  10. echo "Creating ${2}.jar for ${pluginname} (${foldername})"
  11. if [ ! -e src/${foldername}/plugin.info -a ! -e src/${foldername}/plugin.config ]; then
  12. echo "no plugin.info or plugin.config found";
  13. exit 0;
  14. fi
  15. #echo "looking for classes"
  16. srcdir=${PWD}
  17. TMPDIR=`mktemp -d`
  18. #echo "Using temp dir: ${TMPDIR}"
  19. cd $TMPDIR
  20. mkdir META-INF
  21. if [ -e ${srcdir}/src/${foldername}/plugin.info ]; then
  22. cp ${srcdir}/src/${foldername}/plugin.info META-INF/
  23. fi;
  24. if [ -e ${srcdir}/src/${foldername}/plugin.config ]; then
  25. cp ${srcdir}/src/${foldername}/plugin.config META-INF/
  26. fi;
  27. # Add the SVN version if there's no version specified and we know the SVN rev
  28. if [ -e META-INF/plugin.info ]; then
  29. if ! grep "^version=" META-INF/plugin.info >/dev/null; then
  30. SVN=`which svn`
  31. SVNREV=`$SVN info $srcdir/src/$foldername 2>&1 | grep "Last Changed Rev"`
  32. SVNREV=${SVNREV##*: }
  33. echo "" >> META-INF/plugin.info
  34. if [ -n "$SVNREV" ]; then
  35. echo "version=$SVNREV" >> META-INF/plugin.info;
  36. else
  37. echo "version=0" >> META-INF/plugin.info;
  38. fi
  39. if ! grep "^friendlyversion=" META-INF/plugin.info >/dev/null; then
  40. echo "friendlyversion=$SVNREV" >> META-INF/plugin.info
  41. fi
  42. fi
  43. fi;
  44. # Do the same for plugin.config
  45. # This is rudimentary, it a version: section already exists (eg to specify
  46. # friendlyversion) then it won't add the number= key.
  47. if [ -e META-INF/plugin.config ]; then
  48. if ! grep "^version:" META-INF/plugin.config >/dev/null; then
  49. SVN=`which svn`
  50. SVNREV=`$SVN info $srcdir/src/$foldername 2>&1 | grep "Last Changed Rev"`
  51. SVNREV=${SVNREV##*: }
  52. echo "" >> META-INF/plugin.config
  53. echo "" >> META-INF/plugin.config
  54. echo "version:" >> META-INF/plugin.config;
  55. if [ -n "$SVNREV" ]; then
  56. echo " number=$SVNREV" >> META-INF/plugin.config;
  57. else
  58. echo " number=0" >> META-INF/plugin.config;
  59. fi
  60. # Add to keysections list
  61. sed 's/keysections:/keysections:\n version/g' META-INF/plugin.config > META-INF/plugin.config.temp
  62. rm -Rf META-INF/plugin.config
  63. mv META-INF/plugin.config.temp META-INF/plugin.config
  64. fi
  65. fi;
  66. foo=`echo $foldername | sed -e 's/\/[^\/]*$//g'`
  67. mkdir -p $foo
  68. cd ${foo}
  69. ln -s ${srcdir}/build/classes/${foldername} .
  70. cd $TMPDIR
  71. mkdir -p ${srcdir}/plugins/
  72. rm -Rf ${srcdir}/plugins/${2}.jar
  73. jar -cvf ${srcdir}/src/${foldername}/${2}.jar META-INF >/dev/null
  74. bit=""
  75. while [ 1 -eq 1 ]; do
  76. bit=${bit}/*
  77. ls ${foo}${bit}/* >/dev/null 2>&1
  78. if [ ${?} -ne 0 ]; then
  79. break;
  80. else
  81. DIR=${PWD}
  82. for prepackage in `ls ${srcdir}/src/${foldername}${bit}/prePackage.sh 2>/dev/null`; do
  83. cd `dirname ${prepackage}`
  84. /bin/sh ${prepackage}
  85. cd ${DIR}
  86. done;
  87. jar -uvf ${srcdir}/src/${foldername}/${2}.jar `ls -1 ${foo}${bit}/*.class ${foo}${bit}/*.png ${foo}${bit}/*.exe ${foo}${bit}/*.dll 2>/dev/null` >/dev/null
  88. fi
  89. done
  90. mv ${srcdir}/src/${foldername}/${2}.jar ${srcdir}/plugins/
  91. cd ${srcdir}
  92. rm -Rf ${TMPDIR}
  93. #echo "done";