packaging_osx.sh 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. WORK_ROOT=$(dirname $0)
  3. cd $WORK_ROOT
  4. WORK_ROOT=$(pwd)
  5. ARCH=$(uname -m)
  6. BUILD_ROOT=${WORK_ROOT}/..
  7. cd ${BUILD_ROOT}/_CPack_Packages/Darwin-x86_64/productbuild/hpccsystems-clienttools-community*${ARCH}
  8. PACKAGE_SRC=$(pwd)
  9. cd $WORK_ROOT
  10. #-----------------------------------------------
  11. #
  12. # Get variables
  13. #
  14. #-----------------------------------------------
  15. #get os "Darwin"
  16. OSTYPE=Darwin
  17. #ID=$(grep "^SET\(CPACK_PACKAGE_NAME \"hpccsystems-clienttools-6.2\"" ${BUILD_ROOT}/CPackConfig.cmake)
  18. ID=$(grep "CPACK_PACKAGE_NAME " ${BUILD_ROOT}/CPackConfig.cmake | \
  19. cut -d' ' -f2 | cut -d'"' -f2)
  20. echo "Title: $ID"
  21. PACKAGE_NAME=$(grep "CPACK_SOURCE_PACKAGE_FILE_NAME " \
  22. ${BUILD_ROOT}/CPackConfig.cmake | cut -d' ' -f2 | cut -d'"' -f2)
  23. PACKAGE_NAME="${PACKAGE_NAME}${OSTYPE}-${ARCH}"
  24. echo "CPACK_PACKAGE_NAME: $PACKAGE_NAME"
  25. FULL_VERSION=$(grep "CPACK_PACKAGE_VERSION " ${BUILD_ROOT}/CPackConfig.cmake | \
  26. cut -d' ' -f2 | cut -d'"' -f2)
  27. echo "FULL_VERSION: $FULL_VERSION"
  28. #-----------------------------------------------
  29. #
  30. # Create package with pkgbuilds
  31. #
  32. #-----------------------------------------------
  33. echo ""
  34. echo "Create ${PACKAGE_NAME}.pkg with pkgbuild"
  35. [ -d "${PACKAGE_NAME}" ] && rm -rf ${PACKAGE_NAME}
  36. mkdir -p ${PACKAGE_NAME}
  37. cd ${PACKAGE_NAME}
  38. echo "pkgbuild --root ${PACKAGE_SRC}/opt --install-location "/opt" --identifier $ID ${PACKAGE_NAME}.pkg"
  39. pkgbuild --root ${PACKAGE_SRC}/opt --install-location "/opt" --identifier $ID ${PACKAGE_NAME}.pkg
  40. if [ $? -ne 0 ]
  41. then
  42. echo "Error to run pkgbuild"
  43. exit 1
  44. fi
  45. if [ ! -e ${PACKAGE_NAME}.pkg ]
  46. then
  47. echo "Failed to generate ${PACKAGE_NAME}.pkg"
  48. exit 1
  49. fi
  50. cd ..
  51. #-----------------------------------------------
  52. #
  53. # Creaate distribution.xml from template
  54. #
  55. #-----------------------------------------------
  56. echo ""
  57. echo "Create Distribution.xml"
  58. sed "s/\${TITLE}/${ID}/g; \
  59. s/\${PACKAGE_NAME}/${PACKAGE_NAME}/g; \
  60. s/\${FULL_VERSION}/${FULL_VERSION}/g" \
  61. ${WORK_ROOT}/distribution_template.xml > distribution.xml
  62. #-----------------------------------------------
  63. #
  64. # Add Welcome/License/ReadMe with productbuild
  65. #
  66. #-----------------------------------------------
  67. echo ""
  68. echo "Add Welcome/License/ReadMe to ${PACKAGE_NAME}.pkg with productbuild"
  69. [ -d resources ] && rm -rf resources
  70. mkdir -p resources
  71. cp ${PACKAGE_SRC}/Contents/*.txt resources/
  72. echo "productbuild --distribution ./distribution.xml --package-path ./${PACKAGE_NAME} --resources ./resources ${PACKAGE_NAME}.pkg"
  73. productbuild --distribution ./distribution.xml --package-path ./${PACKAGE_NAME} --resources ./resources ${PACKAGE_NAME}.pkg
  74. #-----------------------------------------------
  75. #
  76. # Create DMG file
  77. #
  78. #-----------------------------------------------
  79. echo ""
  80. mv ${PACKAGE_NAME}.pkg ./${PACKAGE_NAME}/
  81. echo "hdiutil create -volname ${PACKAGE_NAME} -srcfolder ./${PACKAGE_NAME} -ov ${PACKAGE_NAME}.dmg"
  82. hdiutil create -volname ${PACKAGE_NAME} -srcfolder ./${PACKAGE_NAME} -ov ${PACKAGE_NAME}.dmg
  83. echo ""
  84. echo "DONE"