#!/bin/bash
####
# build - build wildfire distro using composer (builds both development and production versions) 
#   build {version}     # distro is named wildfire-{version}-dev.tgz and wildfire-{version}.tgz
#   Example: build develop5+123 
####
set -x
WF_VERSION=$1

COMPOSER_IMAGE=kamedia/drupal:10.1.6-php8.2-1

if [ -t 1 ]; then use_tty='-it'; fi
BIN="docker run $use_tty --rm --entrypoint /bin/bash -v $PWD/.:/opt/drupal $COMPOSER_IMAGE"
#BIN="docker run $use_tty --rm --entrypoint /bin/bash -v $PWD/.:/project $COMPOSER_IMAGE"
SSHCONFIG="echo 'Host *' >  ~/.ssh/config; echo '  StrictHostKeyChecking no' >> ~/.ssh/config; echo '  UserKnownHostsFile=/dev/null' >> ~/.ssh/config"
#GITFIX='GIT_COMMITTER_NAME=nobody GIT_COMMITTER_EMAIL=nobody@nowhere.net'

## production distro - install modules, change owner, patch API keys
$BIN -c "$SSHCONFIG; COMPOSER_MEMORY_LIMIT=2G COMPOSER_CACHE_DIR=/tmp composer install --no-dev"
$BIN -c "chown --recursive $(id -u):$(id -g) composer.lock vendor/ web/"
./build-patch
if [ -d "/tmp/wildfire-${WF_VERSION}" ]; then rm -rf /tmp/wildfire-${WF_VERSION}; fi
cp -r . /tmp/wildfire-${WF_VERSION}

## developemnt distro - install modules, change owner, patch API keys
$BIN -c "$SSHCONFIG; COMPOSER_MEMORY_LIMIT=2G COMPOSER_CACHE_DIR=/tmp composer install"
$BIN -c "chown --recursive $(id -u):$(id -g) composer.lock vendor/ web/"
./build-patch
if [ -d "/tmp/wildfire-${WF_VERSION}-dev" ]; then rm -rf /tmp/wildfire-${WF_VERSION}-dev; fi
cp -r . /tmp/wildfire-${WF_VERSION}-dev

## create distro tar files in the target directory
if [ -d "target" ]; then rm -rf target; fi
mkdir target
tar --exclude-vcs -cf target/wildfire-${WF_VERSION}-dev.tgz --gzip --directory=/tmp wildfire-${WF_VERSION}-dev
tar --exclude-vcs -cf target/wildfire-${WF_VERSION}.tgz --gzip --directory=/tmp wildfire-${WF_VERSION}
rm -rf /tmp/wildfire-${WF_VERSION}-dev
rm -rf /tmp/wildfire-${WF_VERSION}
