build.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env bash
  2. set -e
  3. if [[ "$#" -ne 1 ]]; then
  4. echo "Usage:" >&2
  5. echo " $0 {version}" >&2
  6. exit 1
  7. fi
  8. version=$1
  9. builtcontent="./build/shlink_${version}_dist"
  10. projectdir=$(pwd)
  11. [[ -f ./composer.phar ]] && composerBin='./composer.phar' || composerBin='composer'
  12. # Copy project content to temp dir
  13. echo 'Copying project files...'
  14. rm -rf "${builtcontent}"
  15. mkdir -p "${builtcontent}"
  16. rsync -av * "${builtcontent}" \
  17. --exclude=*docker* \
  18. --exclude=Dockerfile \
  19. --include=.htaccess \
  20. --exclude-from=./.dockerignore
  21. cd "${builtcontent}"
  22. # Install dependencies
  23. echo "Installing dependencies with $composerBin..."
  24. ${composerBin} self-update
  25. ${composerBin} install --no-dev --optimize-autoloader --prefer-dist --no-progress --no-interaction
  26. # Copy mezzio helper script to vendor (deprecated - Remove with Shlink 3.0.0)
  27. cp "${projectdir}/bin/helper/mezzio-swoole" "./vendor/bin"
  28. # Delete development files
  29. echo 'Deleting dev files...'
  30. rm composer.*
  31. # Update shlink version in config
  32. sed -i "s/%SHLINK_VERSION%/${version}/g" config/autoload/app_options.global.php
  33. # Compressing file
  34. echo 'Compressing files...'
  35. cd "${projectdir}"/build
  36. rm -f ./shlink_${version}_dist.zip
  37. zip -ry ./shlink_${version}_dist.zip ./shlink_${version}_dist
  38. cd "${projectdir}"
  39. rm -rf "${builtcontent}"
  40. echo 'Done!'