equal
deleted
inserted
replaced
17 |
17 |
18 #include <cstdio> |
18 #include <cstdio> |
19 #include <cstdlib> |
19 #include <cstdlib> |
20 #include <memory> |
20 #include <memory> |
21 #include <functional> |
21 #include <functional> |
|
22 #include <regex> |
22 |
23 |
23 #include <relpipe/cli/CLI.h> |
24 #include <relpipe/cli/CLI.h> |
24 #include <relpipe/cli/RelpipeCLIException.h> |
25 #include <relpipe/cli/RelpipeCLIException.h> |
25 |
26 |
26 #include <relpipe/reader/Factory.h> |
27 #include <relpipe/reader/Factory.h> |
48 int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR; |
49 int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR; |
49 |
50 |
50 try { |
51 try { |
51 CLIParser cliParser; |
52 CLIParser cliParser; |
52 Configuration configuration = cliParser.parse(cli.arguments()); |
53 Configuration configuration = cliParser.parse(cli.arguments()); |
53 std::shared_ptr<reader::RelationalReader> reader(reader::Factory::create(std::cin)); |
54 |
54 std::shared_ptr<writer::RelationalWriter> writer(writer::Factory::create(std::cout)); |
55 if (std::regex_match(cli.programName(), std::wregex(L"^(.*/)?relpipe-in-sql$"))) { |
55 SqlHandler handler(writer.get(), configuration); |
56 // relpipe-in-sql: |
56 reader->addHandler(&handler); |
57 std::shared_ptr<writer::RelationalWriter> writer(writer::Factory::create(std::cout)); |
57 reader->process(); |
58 SqlHandler handler(writer.get(), configuration); |
|
59 handler.endOfPipe(); |
|
60 } else { |
|
61 // relpipe-tr-sql: |
|
62 std::shared_ptr<reader::RelationalReader> reader(reader::Factory::create(std::cin)); |
|
63 std::shared_ptr<writer::RelationalWriter> writer(writer::Factory::create(std::cout)); |
|
64 SqlHandler handler(writer.get(), configuration); |
|
65 reader->addHandler(&handler); |
|
66 reader->process(); |
|
67 } |
58 |
68 |
59 resultCode = CLI::EXIT_CODE_SUCCESS; |
69 resultCode = CLI::EXIT_CODE_SUCCESS; |
60 |
70 |
61 } catch (RelpipeCLIException& e) { |
71 } catch (RelpipeCLIException& e) { |
62 fwprintf(stderr, L"Caught CLI exception: %ls\n", e.getMessge().c_str()); |
72 fwprintf(stderr, L"Caught CLI exception: %ls\n", e.getMessge().c_str()); |