1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/usr/bin/env bash
- set -e
- if [ "$#" -lt 1 ] || [ "$#" -gt 2 ] || ([ "$#" == 2 ] && [ "$2" != "--no-swoole" ]); then
- echo "Usage:" >&2
- echo " $0 {version} [--no-swoole]" >&2
- exit 1
- fi
- version=$1
- noSwoole=$2
- phpVersion=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
- [[ $noSwoole ]] && swooleSuffix="" || swooleSuffix="_swoole"
- distId="shlink${version}_php${phpVersion}${swooleSuffix}_dist"
- builtContent="./build/${distId}"
- projectdir=$(pwd)
- [[ -f ./composer.phar ]] && composerBin='./composer.phar' || composerBin='composer'
- # Copy project content to temp dir
- echo 'Copying project files...'
- rm -rf "${builtContent}"
- mkdir -p "${builtContent}"
- rsync -av * "${builtContent}" \
- --exclude=*docker* \
- --exclude=Dockerfile \
- --include=.htaccess \
- --exclude-from=./.dockerignore
- cd "${builtContent}"
- # Install dependencies
- echo "Installing dependencies with $composerBin..."
- composerFlags="--optimize-autoloader --no-progress --no-interaction"
- ${composerBin} self-update
- ${composerBin} install --no-dev --prefer-dist $composerFlags
- if [[ $noSwoole ]]; then
- # If generating a dist not for swoole, uninstall mezzio-swoole
- ${composerBin} remove mezzio/mezzio-swoole --with-all-dependencies --update-no-dev $composerFlags
- else
- # Copy mezzio helper script to vendor (deprecated - Remove with Shlink 3.0.0)
- cp "${projectdir}/bin/helper/mezzio-swoole" "./vendor/bin"
- fi
- # Delete development files
- echo 'Deleting dev files...'
- rm composer.*
- # Update shlink version in config
- sed -i "s/%SHLINK_VERSION%/${version}/g" config/autoload/app_options.global.php
- # Compressing file
- echo 'Compressing files...'
- cd "${projectdir}"/build
- rm -f ./${distId}.zip
- zip -ry ./${distId}.zip ./${distId}
- cd "${projectdir}"
- rm -rf "${builtContent}"
- echo 'Done!'
|