flarum/scripts/build.sh

65 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# This script builds a release of Flarum by installing dependencies and bundled
# extensions, compiling production assets, removing development files, and
# zipping up the result. It should be run from the root directory.
base=$PWD
release=/tmp/flarum
# Make a copy of the files
rm -rf ${release}
mkdir ${release}
git archive --format tar --worktree-attributes HEAD | tar -xC ${release}
# Install dependencies
cd ${release}/flarum
composer require flarum/core:dev-master@dev --prefer-dist --update-no-dev
composer install --prefer-dist --optimize-autoloader --ignore-platform-reqs --no-dev
# Copy public files
cp -R ${release}/flarum/vendor/flarum/core/public/* ${release}/assets
# Compile assets
cd ${release}/flarum/vendor/flarum/core
bash scripts/compile.sh
# Delete dev files
cd ${release}
rm -rf Vagrantfile
rm -rf scripts
rm -rf flarum/core
rm -rf flarum/studio.json
rm -rf `find . -type d -name node_modules`
rm -rf `find . -type d -name bower_components`
# Bundle default extensions
for extension in akismet approval bbcode emoji english flags likes lock markdown mentions pusher sticky subscriptions suspend tags; do
# Download and extract the extension archive
cd ${release}/extensions
curl "https://github.com/flarum/${extension}/archive/master.zip" -L -o ${extension}.zip
unzip ${extension}.zip -d ./${extension}
rm ${extension}.zip
# Compile assets
cd $extension
bash scripts/compile.sh
# Delete dev files
rm -rf `find . -type d -name node_modules`
rm -rf `find . -type d -name bower_components`
done
# Set file permissions
cd $release
find . -type d -exec chmod 0750 {} +
find . -type f -exec chmod 0644 {} +
chmod 0775 .
chmod -R 0775 assets flarum/storage
# Create the release archive
zip -r release.zip ./
mv release.zip ${base}/release.zip