release.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. TOOL_DIR="`pwd`"
  3. # 1. package name
  4. # 2. lts release
  5. create_package() {
  6. if [[ "$2" == "yes" ]]; then
  7. local PACKAGE_NAME="flutter_ffmpeg_$1_lts"
  8. else
  9. local PACKAGE_NAME="flutter_ffmpeg_$1"
  10. fi
  11. local PACKAGE_PATH="${TOOL_DIR}/../packages/${PACKAGE_NAME}"
  12. if [[ -d ${PACKAGE_PATH} ]]; then
  13. echo "error: package ${PACKAGE_NAME} exists"
  14. exit 1
  15. fi
  16. mkdir -p ${PACKAGE_PATH}
  17. # 1. COPY ANDROID
  18. mkdir -p ${PACKAGE_PATH}/android
  19. cp -r ${TOOL_DIR}/../android/src ${PACKAGE_PATH}/android
  20. cp ${TOOL_DIR}/../android/.gitignore ${PACKAGE_PATH}/android
  21. cp ${TOOL_DIR}/../android/build.gradle ${PACKAGE_PATH}/android
  22. cp ${TOOL_DIR}/../android/gradle.properties ${PACKAGE_PATH}/android
  23. cp ${TOOL_DIR}/../android/settings.gradle ${PACKAGE_PATH}/android
  24. # 2. COPY IOS
  25. cp -r ${TOOL_DIR}/../ios ${PACKAGE_PATH}
  26. # 3. COPY lib
  27. cp -r ${TOOL_DIR}/../lib ${PACKAGE_PATH}
  28. # 4. COPY
  29. cp ${TOOL_DIR}/../.gitignore ${PACKAGE_PATH}
  30. cp ${TOOL_DIR}/../.metadata ${PACKAGE_PATH}
  31. cp ${TOOL_DIR}/../pubspec.yaml ${PACKAGE_PATH}
  32. # 5. COPY LICENSE
  33. if [[ $1 == *gpl ]]; then
  34. cp ${TOOL_DIR}/../LICENSE.GPLv3 ${PACKAGE_PATH}/LICENSE
  35. else
  36. cp ${TOOL_DIR}/../LICENSE ${PACKAGE_PATH}/LICENSE
  37. fi
  38. # 6. UPDATE DEPENDENCIES
  39. sed -i .tmp "s/mobile-ffmpeg-https/mobile-ffmpeg-$1/g" ${PACKAGE_PATH}/android/build.gradle
  40. sed -i .tmp "s/mobile-ffmpeg-https/mobile-ffmpeg-$1/g" ${PACKAGE_PATH}/ios/flutter_ffmpeg.podspec
  41. if [[ "$2" == "yes" ]]; then
  42. sed -i .tmp "s/minSdkVersion 24/minSdkVersion 16/g" ${PACKAGE_PATH}/android/build.gradle
  43. sed -i .tmp "s/implementation \'com.arthenica:mobile-ffmpeg-$1:$VERSION\'/implementation \'com.arthenica:mobile-ffmpeg-$1:$LTS_VERSION\'/g" ${PACKAGE_PATH}/android/build.gradle
  44. sed -i .tmp "s/mobile-ffmpeg-$1\'\, \'$VERSION/mobile-ffmpeg-$1\'\, \'$LTS_VERSION/g" ${PACKAGE_PATH}/ios/flutter_ffmpeg.podspec
  45. fi
  46. # 8. CLEAN TEMP FILES
  47. rm -f ${PACKAGE_PATH}/ios/flutter_ffmpeg.podspec.tmp
  48. rm -f ${PACKAGE_PATH}/android/build.gradle.tmp
  49. }
  50. if [[ $# -ne 2 ]];
  51. then
  52. echo "Usage: release.sh <version> <lts version>"
  53. exit 1
  54. fi
  55. VERSION=$1
  56. LTS_VERSION=$2
  57. echo -e "Creating release packages for version: $VERSION and lts version: $LTS_VERSION\n"
  58. # MAIN RELEASES
  59. create_package "min"
  60. create_package "min-gpl"
  61. create_package "https"
  62. create_package "https-gpl"
  63. create_package "audio"
  64. create_package "video"
  65. create_package "full"
  66. create_package "full-gpl"
  67. # LTS RELEASES
  68. create_package "min" "yes"
  69. create_package "min-gpl" "yes"
  70. create_package "https" "yes"
  71. create_package "https-gpl" "yes"
  72. create_package "audio" "yes"
  73. create_package "video" "yes"
  74. create_package "full" "yes"
  75. create_package "full-gpl" "yes"