|
Griffon 1.2.0 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.griffon.cli.GriffonScriptRunner
public class GriffonScriptRunner
Class that handles Griffon command line interface for running scripts
Nested Class Summary | |
---|---|
class |
GriffonScriptRunner.GantCustomizer
|
private static class |
GriffonScriptRunner.ScriptAndArgs
Contains details about a Griffon command invocation such as the name of the corresponding script, the environment (if specified), and the arguments to the command. |
Field Summary | |
---|---|
static Closure |
DO_NOTHING_CLOSURE
|
static String |
KEY_SCRIPT_ARGS
|
static String |
VAR_SCRIPT_ARGS_MAP
|
static String |
VAR_SCRIPT_ENV
|
static String |
VAR_SCRIPT_FILE
|
static String |
VAR_SCRIPT_NAME
|
static String |
VAR_SCRIPT_UNPARSED_ARGS
|
static String |
VAR_SYS_PROPERTIES
|
private List |
buildListeners
|
private GriffonScriptRunner.GantCustomizer |
gantCustomizer
|
private CommandLineHelper |
helper
|
private boolean |
isInteractive
|
private PrintStream |
out
|
private Map |
scriptCache
|
private static Pattern |
scriptFilePattern
|
private List |
scriptsAllowedOutsideOfProject
|
private BuildSettings |
settings
|
Constructor Summary | |
GriffonScriptRunner()
|
|
GriffonScriptRunner(String griffonHome)
|
|
GriffonScriptRunner(BuildSettings settings)
|
Methods inherited from class Object | |
---|---|
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Field Detail |
---|
public static final Closure DO_NOTHING_CLOSURE
public static final String KEY_SCRIPT_ARGS
public static final String VAR_SCRIPT_ARGS_MAP
public static final String VAR_SCRIPT_ENV
public static final String VAR_SCRIPT_FILE
public static final String VAR_SCRIPT_NAME
public static final String VAR_SCRIPT_UNPARSED_ARGS
public static final String VAR_SYS_PROPERTIES
private List buildListeners
private GriffonScriptRunner.GantCustomizer gantCustomizer
private CommandLineHelper helper
private boolean isInteractive
private PrintStream out
private final Map scriptCache
private static final Pattern scriptFilePattern
private final List scriptsAllowedOutsideOfProject
private BuildSettings settings
Constructor Detail |
---|
public GriffonScriptRunner()
public GriffonScriptRunner(String griffonHome)
public GriffonScriptRunner(BuildSettings settings)
Method Detail |
---|
public void addBuildEventListener(GriffonBuildListener listener)
private static void addDependenciesToURLs(Set excludes, List urls, List runtimeDeps)
private static void addUrlsToRootLoader(URLClassLoader loader, URL[] urls)
A Groovy RootLoader should be used to load GriffonScriptRunner, but this leaves us with a problem. If we want to extend its classpath by adding extra URLs, we have to use the addURL() method that is only public on RootLoader (it's protected on URLClassLoader). Unfortunately, due to the nature of Groovy's RootLoader a declared type of RootLoader in this class is not the same type as GriffonScriptRunner's class loader because the two are loaded by different class loaders.
In other words, we can't add URLs via the addURL() method because we can't "see" it from Java. Instead, we use reflection to invoke it.
loader
- The root loader whose classpath we want to extend.urls
- The URLs to add to the root loader's classpath.
public static String askUserForBestMatch(String scriptName, List topMatches)
private int attemptPrecompiledScriptExecute(GriffonScriptRunner.ScriptAndArgs script, GantBinding binding, Resource[] allScripts)
private int callPluginOrGriffonScript(GriffonScriptRunner.ScriptAndArgs script)
private URLClassLoader createClassLoader()
public Gant createGantInstance(GantBinding binding)
private int doExecuteCommand(GriffonScriptRunner.ScriptAndArgs script)
public int executeCommand(String name, String args)
public int executeCommand(String name, String args, String env)
public int executeWithGantInstance(Gant gant, GantBinding binding)
public int executeWithGantInstance(Gant gant, GantBinding binding, List targets)
private int executeWithGantInstanceNoException(Gant gant, GantBinding binding)
private static void exitWithError(String error)
private List findPotentialScripts(GriffonScriptRunner.ScriptAndArgs script, Resource[] allScripts, GantBinding binding)
public static String fixScriptName(String scriptName, Resource[] allScripts)
private static URL[] getClassLoaderUrls(BuildSettings settings, Set excludes)
public static CommandLine getCommandLine(String[] args)
public static CommandLineParser getCommandLineParser()
public PrintStream getOut()
public static String getScriptNameFromFile(File scriptPath)
public BuildSettings getSettings()
public GantBinding initBinding(GantBinding binding)
private void initializeProjectInputStream(GantBinding binding)
public static boolean isCommandScript(File file)
public static boolean isContextlessScriptName(String scriptName)
private boolean isExternalScript(File scriptFile)
private boolean isGriffonProject()
public boolean isInteractive()
private void loadScriptClass(Gant gant, String scriptName)
public static void main(String[] args)
private static GriffonScriptRunner.ScriptAndArgs processAndReturnArguments(CommandLine commandLine, GriffonScriptRunner.ScriptAndArgs info)
private static GriffonScriptRunner.ScriptAndArgs processArgumentsAndReturnScriptName(CommandLine commandLine)
private static void processSystemArguments(CommandLine allArgs, GriffonScriptRunner.ScriptAndArgs info)
public void setInteractive(boolean interactive)
public void setLoggingOptions()
public void setOut(PrintStream outputStream)
public void setRunningEnvironment(String scriptName, String env)
public void setup()
public static String unquote(String s)
Groovy Documentation