Events-cli: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 10: Line 10:
Enforces the following command line structure:
Enforces the following command line structure:


  <''parser''>  [''command'' [''command-options'']] [''[[Events-api_Concepts#Query|query]]''] <file1> [<file2> ...]
  <''parser''>  [''[[Events-api_Concepts#Query|query]]''] [''command'' [''command-options'']] <file1> [<file2> ...]


   cat <input-file> | <''parser''> [''command''] [''command-options''] [''[[Events-api_Concepts#Query|query]]'']
   cat <input-file> | <''parser''> [''command''] [''command-options''] [''[[Events-api_Concepts#Query|query]]'']

Revision as of 00:56, 23 September 2017

Internal

Overview

Command line logic for event parsers.

Enforces the following command line structure:

<parser>  [query] [command [command-options]] <file1> [<file2> ...]
 cat <input-file> | <parser> [command] [command-options] [query]

where the commands represent events-processing procedures.

User Manual

Usage:

public class Main {

  public static final String APPLICATION_NAME = "some-app";

  public static void main(String[] args) throws Exception {

    try {

        Parser parser = new SomeAppParser();
        ProcedureFactory procedureFactory = new SomeAppProcedureFactory();
        EventParserRuntime runtime = new EventParserRuntime(args, APPLICATION_NAME, procedureFactory, parser);

        if (runtime.getConfiguration().isHelp()) {

            runtime.displayHelp(APPLICATION_NAME);
            return;
        }

        runtime.run();

    }
    catch(UserErrorException e) {

        System.err.println(e.getMessage());
    }
  }
}

End-to-end testing:

File f = new File(System.getProperty("basedir"), "src/test/resources/data/something.txt");
assertTrue(f.isFile());

Parser parser = new SomeParser();

MockProcedureFactory mf = new MockProcedureFactory();

ApplicationSpecificBehavior asb = new ApplicationSpecificBehavior(parser, mf);

String[] commandLine = {

    "mock-procedure",
    f.getPath()
};

EventParserRuntime r = new EventParserRuntime(commandLine, "test", asb);

r.run();

Development

GitHub

https://github.com/NovaOrdis/events-cli

Maven

<dependency>
    <groupId>io.novaordis.events.cli</groupId>
    <artifactId>events-cli</artifactId>
    <version>${events.cli.version}</version>
</dependency>