4. The Command Line

Griffon' command line system is built on Gant - a simple Groovy wrapper around Apache Ant.

However, Griffon takes it a bit further through the use of convention and the `griffon` command. When you type:

    griffon [command name]

Griffon does a search in the following directories for Gant scripts to execute:

- `USER_HOME/.griffon/scripts`
- `PROJECT_HOME/scripts`
- `PROJECT_HOME/plugins/*/scripts`
- `GRIFFON_HOME/scripts`

Griffon will also convert command names that are in lower case form such as run-app into camel case. So typing

    griffon run-app

Results in a search for the following files:

- `USER_HOME/.griffon/scripts/RunApp.groovy`
- `PROJECT_HOME/scripts/RunApp.groovy`
- `PLUGINS_HOME/*/scripts/RunApp.groovy`
- `GRIFFON_HOME/scripts/RunApp.groovy`

If multiple matches are found Griffon will give you a choice of which one to execute. When Griffon executes a Gant script, it invokes the "default" target defined in that script. If there is no default, Griffon will quit with an error.

To get a list and some help about the available commands type:

    griffon help

Which outputs usage instructions and the list of commands Griffon is aware of:

    Usage (optionals marked with *):
    griffon [environment]* [target] [arguments]*Examples:
    griffon dev run-app
    griffon create-app booksAvailable Targets (type griffon help 'target-name' for more info):
    griffon clean
    griffon compile
    griffon package
    ...

The command interpreter is able to expand abbreviations following a camel case convention.

Examples:

    griffon tA // expands to test-app
    griffon cAd // expands to create-addon
    griffon cIT // expands to create-integration-test

> Refer to the Command Line reference in left menu of the reference guide for more information about individual commands