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.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. foo=`echo $foldername | sed -e 's/\/[^\/]*$//g'`
  23. mkdir -p $foo
  24. cd ${foo}
  25. ln -s ${srcdir}/build/classes/${foldername} .
  26. cd $TMPDIR
  27. mkdir -p ${srcdir}/plugins/
  28. rm -Rf ${srcdir}/plugins/${2}.jar
  29. jar -cvf ${srcdir}/src/${foldername}/${2}.jar META-INF/plugin.info >/dev/null
  30. bit=""
  31. while [ 1 -eq 1 ]; do
  32. bit=${bit}/*
  33. ls ${foo}${bit}/* >/dev/null 2>&1
  34. if [ ${?} -ne 0 ]; then
  35. break;
  36. else
  37. for thisfile in `ls -1 ${foo}${bit}/*.class`; do
  38. jar -uvf ${srcdir}/src/${foldername}/${2}.jar ${thisfile} >/dev/null
  39. done
  40. fi
  41. done
  42. mv ${srcdir}/src/${foldername}/${2}.jar ${srcdir}/plugins/
  43. #echo "done";