Created
October 31, 2010 03:06
-
-
Save deluan/656064 to your computer and use it in GitHub Desktop.
Script for selecting and calling the correct Griffon version when you have more than one version installed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Author: Deluan (http://techbeats.deluan.com) | |
# Check if GRIFFON_HOME is set | |
if [ -z "$GRIFFON_HOME" -o ! -d "$GRIFFON_HOME" ]; then | |
echo "Error: GRIFFON_HOME not set" | |
exit 2 | |
fi | |
# Extract the default version and base path from GRIFFON_HOME | |
DEFAULT_VERSION=`basename $GRIFFON_HOME | cut -f 2 -d "-"` | |
BASE_GRIFFON_PATH=`dirname $GRIFFON_HOME` | |
APP_PROP="application.properties" | |
# Try to get the version from the command line | |
TRY_VERSION=$1 | |
if [ -d "${BASE_GRIFFON_PATH}/griffon-${TRY_VERSION}" ]; then | |
VERSION=$TRY_VERSION | |
shift | |
fi | |
# Or else get the version from the application.properties in the current directory | |
[ -z "$VERSION" -a -f "$APP_PROP" ] && | |
VERSION=`awk -F'=' '/app.griffon.version/ { print $2 }' $APP_PROP | tr -d '\r\n'` | |
# Or else use the default version | |
[ -z "$VERSION" ] && | |
VERSION=$DEFAULT_VERSION | |
export GRIFFON_HOME=${BASE_GRIFFON_PATH}/griffon-${VERSION} | |
GRIFFON_CMD=${GRIFFON_HOME}/bin/griffon | |
if [ ! -x "$GRIFFON_CMD" ]; then | |
echo "Error: griffon command not found at '$GRIFFON_CMD'!" | |
exit 3 | |
fi | |
exec $GRIFFON_CMD $* |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Prerequisites
All your Griffon versions must be installed under the same base directory. Ex:
GRIFFON_HOME
environment variable must be set and point to your "default" Griffon installationThis script was tested on Mac OS X (Snow Leopard), Linux (Ubuntu) and Windows (with cygwin)
Installation
PATH
.$GRIFFON_HOME/bin
from yourPATH
Usage
Using the script is as transparent as possible:
If you invoke it from a project folder, it will detect the version used by the project and call the correct griffon (if it is installed in your system)
If you invoke it from any other folder that does not contain a Griffon project, it will call the "default" Griffon installation
If you want to call a specific Griffon version (i.e. when doing an upgrade) you can specify the version you want in the first parameter. Ex: