All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.mojo.groovy.tools.ShellMojo Maven / Gradle / Ivy

Go to download

Provides support for execution, compilation and other facets of Groovy development.

The newest version!
/*
 * Copyright (C) 2006-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.codehaus.mojo.groovy.tools;

import org.codehaus.mojo.groovy.ComponentMojoSupport;
import org.codehaus.mojo.groovy.feature.Component;
import org.codehaus.mojo.groovy.feature.Configuration;
import org.codehaus.mojo.groovy.runtime.Shell;

/**
 * Launches the Groovy Shell (aka. groovysh).
 *
 * @goal shell
 * @requiresProject false
 * @since 1.0-beta-2
 * 
 * @version $Id: ShellMojo.java 5428 2007-10-22 22:54:27Z user57 $
 * @author Jason Dillon
 */
public class ShellMojo
    extends ComponentMojoSupport
{
    public ShellMojo() {
        super(Shell.KEY);
    }

    /**
     * Enable the legacy shell.
     *
     * @parameter expression="${legacy}" default-value="false"
     *
     * @noinspection UnusedDeclaration
     */
    private boolean legacy;

    /**
     * Enable verbose output (aka. groovysh --verbose).
     *
     * @parameter expression="${verbose}" default-value="false"
     *
     * @noinspection UnusedDeclaration
     */
    private boolean verbose;

    /**
     * Enable debug output (aka. groovysh --debug).
     *
     * @parameter expression="${debug}" default-value="false"
     *
     * @noinspection UnusedDeclaration
     */
    private boolean debug;

    /**
     * Suppress superfluous output (aka. groovysh --quiet).
     *
     * @parameter expression="${quiet}" default-value="false"
     *
     * @noinspection UnusedDeclaration
     */
    private boolean quiet;

    /**
     * Enable or disable use of ANSI colors (aka. groovysh --color).  Normally auto-detected.
     *
     * @parameter expression="${color}"
     *
     * @noinspection UnusedDeclaration
     */
    private Boolean color;

    /**
     * Specify the terminal type to use (aka. groovysh --terminal).  Normally auto-detected.
     * Full class name or one of "unix", "win", "windows", "false", "off" or "none" expected.
     *
     * @parameter expression="${terminal}"
     *
     * @noinspection UnusedDeclaration
     */
    private String terminal;

    /**
     * Optional arguments to pass to the shell when executing.
     *
     * @parameter expression="${args}"
     *
     * @noinspection UnusedDeclaration
     */
    private String args;

    protected void configure(final Configuration config) throws Exception {
        assert config != null;

        config.set(Shell.Keys.LEGACY, legacy);

        if (!legacy) {
            config.set(Shell.Keys.VERBOSE, verbose);
            config.set(Shell.Keys.DEBUG, debug);
            config.set(Shell.Keys.QUIET, quiet);
            config.set(Shell.Keys.COLOR, color);
            config.set(Shell.Keys.TERMINAL, terminal);
            config.set(Shell.Keys.ARGS, args);
        }
    }

    protected void process(final Component component) throws Exception {
        assert component != null;

        Shell shell = (Shell) component;
        
        shell.execute();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy