1/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
2 *
3 * This program and the accompanying materials are made available under
4 * the terms of the Common Public License v1.0 which accompanies this distribution,
5 * and is available at http://www.eclipse.org/legal/cpl-v10.html
6 *
7 * $Id: emma.java,v 1.1.1.1.2.1 2004/07/16 23:32:29 vlad_r Exp $
8 */
9import com.vladium.emma.IAppConstants;
10import com.vladium.emma.Command;
11import com.vladium.emma.EMMARuntimeException;
12
13// ----------------------------------------------------------------------------
14/**
15 * @author Vlad Roubtsov, (C) 2003
16 */
17public
18final class emma
19{
20    // public: ................................................................
21
22    // TODO: set m_out consistently with LoggerInit
23
24    public static void main (final String [] args)
25        throws EMMARuntimeException
26    {
27        // TODO: proper usage, arg validation, etc
28
29        if ((args.length == 0) || args [0].startsWith ("-h"))
30        {
31            System.out.println (USAGE);
32            return;
33        }
34
35        final String commandName = args [0];
36        final String [] commandArgs = new String [args.length - 1];
37        System.arraycopy (args, 1, commandArgs, 0, commandArgs.length);
38
39        final Command command = Command.create (commandName, "emma ".concat (commandName), commandArgs);
40        command.run ();
41    }
42
43    // protected: .............................................................
44
45    // package: ...............................................................
46
47    // private: ...............................................................
48
49
50    private static final String EOL = System.getProperty ("line.separator", "\n");
51
52    private static final String USAGE =
53    "emma usage: emma <command> [command options]," + EOL +
54    "  where <command> is one of:" + EOL +
55    EOL +
56    "   run     application runner {same as 'emmarun' tool};" + EOL +
57    "   instr   offline instrumentation processor;" + EOL +
58    "   report  offline report generator;" + EOL +
59    "   merge   offline data file merge processor." + EOL +
60    EOL +
61    "  {use '<command> -h' to see usage help for a given command}" + EOL +
62    EOL +
63    IAppConstants.APP_USAGE_BUILD_ID;
64
65} // end of class
66// ----------------------------------------------------------------------------