You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

createPluginJar.sh 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 ]; then
  12. echo "no plugin.info 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. cp ${srcdir}/src/${foldername}/plugin.info META-INF/
  22. # Add the SVN version if there's no version specified and we know the SVN rev
  23. if ! grep "^version=" META-INF/plugin.info >/dev/null; then
  24. SVN=`which svn`
  25. SVNREV=`$SVN info $srcdir/src/$foldername 2>&1 | grep "Last Changed Rev"`
  26. SVNREV=${SVNREV##*: }
  27. echo "" >> META-INF/plugin.info
  28. if [ -n "$SVNREV" ]; then
  29. echo "version=$SVNREV" >> META-INF/plugin.info;
  30. else
  31. echo "version=0" >> META-INF/plugin.info;
  32. fi
  33. if ! grep "^friendlyversion=" META-INF/plugin.info >/dev/null; then
  34. echo "friendlyversion=$SVNREV" >> META-INF/plugin.info
  35. fi
  36. fi
  37. foo=`echo $foldername | sed -e 's/\/[^\/]*$//g'`
  38. mkdir -p $foo
  39. cd ${foo}
  40. ln -s ${srcdir}/build/classes/${foldername} .
  41. cd $TMPDIR
  42. mkdir -p ${srcdir}/plugins/
  43. rm -Rf ${srcdir}/plugins/${2}.jar
  44. jar -cvf ${srcdir}/src/${foldername}/${2}.jar META-INF/plugin.info >/dev/null
  45. bit=""
  46. while [ 1 -eq 1 ]; do
  47. bit=${bit}/*
  48. ls ${foo}${bit}/* >/dev/null 2>&1
  49. if [ ${?} -ne 0 ]; then
  50. break;
  51. else
  52. DIR=${PWD}
  53. for prepackage in `ls ${srcdir}/src/${foldername}${bit}/prePackage.sh 2>/dev/null`; do
  54. cd `dirname ${prepackage}`
  55. /bin/sh ${prepackage}
  56. cd ${DIR}
  57. done;
  58. 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
  59. fi
  60. done
  61. mv ${srcdir}/src/${foldername}/${2}.jar ${srcdir}/plugins/
  62. cd ${srcdir}
  63. rm -Rf ${TMPDIR}
  64. #echo "done";