29 #include <relpipe/writer/RelationalWriter.h> |
29 #include <relpipe/writer/RelationalWriter.h> |
30 #include <relpipe/writer/RelpipeWriterException.h> |
30 #include <relpipe/writer/RelpipeWriterException.h> |
31 #include <relpipe/writer/Factory.h> |
31 #include <relpipe/writer/Factory.h> |
32 #include <relpipe/writer/TypeId.h> |
32 #include <relpipe/writer/TypeId.h> |
33 |
33 |
|
34 #include "Configuration.h" |
|
35 #include "CLIParser.h" |
34 #include "GrepHandler.h" |
36 #include "GrepHandler.h" |
35 |
37 |
36 using namespace relpipe::cli; |
38 using namespace relpipe::cli; |
37 using namespace relpipe::reader; |
|
38 using namespace relpipe::tr::grep; |
39 using namespace relpipe::tr::grep; |
39 |
40 |
40 int main(int argc, char**argv) { |
41 int main(int argc, char**argv) { |
41 setlocale(LC_ALL, ""); |
42 setlocale(LC_ALL, ""); |
42 CLI::untieStdIO(); |
43 CLI::untieStdIO(); |
43 CLI cli(argc, argv); |
44 CLI cli(argc, argv); |
44 |
45 |
|
46 CLIParser cliParser; |
|
47 Configuration configuration = cliParser.parse(cli.arguments()); |
|
48 |
45 int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR; |
49 int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR; |
46 |
50 |
47 try { |
51 try { |
48 std::shared_ptr<RelationalReader> reader(Factory::create(std::cin)); |
52 std::shared_ptr<writer::RelationalWriter> writer(relpipe::writer::Factory::create(std::cout)); |
49 GrepHandler handler(std::cout, cli.arguments()); |
53 std::shared_ptr<RelationalReader> reader(relpipe::reader::Factory::create(std::cin)); |
|
54 GrepHandler handler(writer, configuration); |
50 reader->addHandler(&handler); |
55 reader->addHandler(&handler); |
51 reader->process(); |
56 reader->process(); |
52 |
57 |
53 resultCode = CLI::EXIT_CODE_SUCCESS; |
58 resultCode = CLI::EXIT_CODE_SUCCESS; |
54 |
59 |