| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/bash
- SCENARIO=$1
- DEPENDENCIES=${2-install}
- # Convert the aliases 'highest', 'lowest' and 'lock' to
- # the corresponding composer update command to run.
- case $DEPENDENCIES in
- highest)
- UPDATE_COMMAND=update
- ;;
- lowest)
- UPDATE_COMMAND='update --prefer-lowest'
- ;;
- lock|default|"")
- UPDATE_COMMAND=''
- ;;
- 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
- if [ ! -z "$UPDATE_COMMAND" ] ; then
- composer -n --working-dir=$dir ${UPDATE_COMMAND} --prefer-dist --no-scripts
- fi
- composer -n --working-dir=$dir install --prefer-dist
- # 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
|