Alias ​​Grails que usa a versão adequada de forma inteligente

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 grailse assume que o seu GRAILS_HOMEestá configurado corretamente.

Isso é adaptado da solução de Ted Naleid , principalmente para adicionar suporte grailswe 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
}