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 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. echo "version=$SVNREV" >> META-INF/plugin.info
  29. if ! grep "^friendlyversion=" META-INF/plugin.info >/dev/null; then
  30. echo "friendlyversion=$SVNREV" >> META-INF/plugin.info
  31. fi
  32. fi
  33. foo=`echo $foldername | sed -e 's/\/[^\/]*$//g'`
  34. mkdir -p $foo
  35. cd ${foo}
  36. ln -s ${srcdir}/build/classes/${foldername} .
  37. cd $TMPDIR
  38. mkdir -p ${srcdir}/plugins/
  39. rm -Rf ${srcdir}/plugins/${2}.jar
  40. jar -cvf ${srcdir}/src/${foldername}/${2}.jar META-INF/plugin.info >/dev/null
  41. bit=""
  42. while [ 1 -eq 1 ]; do
  43. bit=${bit}/*
  44. ls ${foo}${bit}/* >/dev/null 2>&1
  45. if [ ${?} -ne 0 ]; then
  46. break;
  47. else
  48. jar -uvf ${srcdir}/src/${foldername}/${2}.jar `ls -1 ${foo}${bit}/*.class ${foo}${bit}/*.png 2>/dev/null` >/dev/null
  49. fi
  50. done
  51. mv ${srcdir}/src/${foldername}/${2}.jar ${srcdir}/plugins/
  52. cd ${srcdir}
  53. rm -Rf ${TMPDIR}
  54. #echo "done";