Trabalhar com várias versões de grails às vezes pode ser um incômodo.
Esta função bash e alias farão o possível para encontrar a versão apropriada do grails para usar no diretório atual. Ele usará o wrapper grails se disponível primeiro, mas se não, verificará a versão definida no arquivo application.properties e usará a instalação do grails para ele. Se tudo o mais falhar, ele apenas volta ao normal grails
e assume que o seu GRAILS_HOME
está configurado corretamente.
Isso é adaptado da solução de Ted Naleid , principalmente para adicionar suporte grailsw
e melhorar um pouco a saída.
alias grails="execute_grails_version grails"
alias grails-debug="execute_grails_version grails-debug"
#Put your grails installations here, as 'grails-<version_number>'
GRAILS_LOCATIONS=/usr/share
function execute_grails_version() {
GRAILS_CMD=$1
shift
if [ -f grailsw ]; then
echo "[Found grailsw]"
./grailsw $*
else
if [ -f application.properties ]; then
export OLD_GRAILS_HOME=$GRAILS_HOME
export GRAILS_VERSION=`grep app.grails.version application.properties | sed -E 's/.*=(.*)/1/'`
export GRAILS_HOME="$GRAILS_LOCATIONS/grails-$GRAILS_VERSION"
if [ ! -d $GRAILS_HOME ]; then
echo "[Unable to find $GRAILS_HOME, using $OLD_GRAILS_HOME]"
export GRAILS_HOME=$OLD_GRAILS_HOME
grails $*
else
echo "[Found application.properties, using $GRAILS_HOME]"
$GRAILS_HOME/bin/$GRAILS_CMD $*
# Set it back
export GRAILS_HOME=$OLD_GRAILS_HOME
fi
else
grails $*
fi
fi
}