#!/bin/bash SCENARIO=$1 DEPENDENCIES=${2-install} # Convert the aliases 'highest', 'lowest' and 'lock' to # the corresponding composer command to run. case $DEPENDENCIES in highest) DEPENDENCIES=update ;; lowest) DEPENDENCIES='update --prefer-lowest' ;; lock|default|"") DEPENDENCIES=install ;; esac original_name=scenarios recommended_name=".scenarios.lock" base="$original_name" if [ -d "$recommended_name" ] ; then base="$recommended_name" fi # If scenario is not specified, install the lockfile at # the root of the project. dir="$base/${SCENARIO}" if [ -z "$SCENARIO" ] || [ "$SCENARIO" == "default" ] ; then SCENARIO=default dir=. fi # Test to make sure that the selected scenario exists. if [ ! -d "$dir" ] ; then echo "Requested scenario '${SCENARIO}' does not exist." exit 1 fi echo echo "::" echo ":: Switch to ${SCENARIO} scenario" echo "::" echo set -ex composer -n validate --working-dir=$dir --no-check-all --ansi composer -n --working-dir=$dir ${DEPENDENCIES} --prefer-dist --no-scripts # If called from a CI context, print out some extra information about # what we just installed. if [[ -n "$CI" ]] ; then composer -n --working-dir=$dir info fi