diff -r 2354c9058fb6 -r e87c231afb77 src/relpipe-tr-guile.cpp --- a/src/relpipe-tr-guile.cpp Sat Jun 06 01:50:45 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/** - * Relational pipes - * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -#include "GuileHandler.h" -#include "CLIParser.h" - -using namespace relpipe::cli; -using namespace relpipe::tr::guile; - -static void relpipeMain(void *closure, int argc, char **argv) { - setlocale(LC_ALL, ""); - CLI::untieStdIO(); - CLI cli(argc, argv); - - int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR; - - try { - CLIParser cliParser; - Configuration configuration = cliParser.parse(cli.arguments()); - std::shared_ptr reader(reader::Factory::create(std::cin)); - std::shared_ptr writer(writer::Factory::create(std::cout)); - GuileHandler handler(writer.get(), configuration); - reader->addHandler(&handler); - reader->process(); - - resultCode = CLI::EXIT_CODE_SUCCESS; - - } catch (RelpipeCLIException& e) { - fwprintf(stderr, L"Caught CLI exception: %ls\n", e.getMessge().c_str()); - fwprintf(stderr, L"Debug: Input stream: eof=%ls, lastRead=%d\n", (cin.eof() ? L"true" : L"false"), cin.gcount()); - resultCode = e.getExitCode(); - } catch (RelpipeReaderException& e) { - fwprintf(stderr, L"Caught Reader exception: %ls\n", e.getMessge().c_str()); - fwprintf(stderr, L"Debug: Input stream: eof=%ls, lastRead=%d\n", (cin.eof() ? L"true" : L"false"), cin.gcount()); - resultCode = CLI::EXIT_CODE_DATA_ERROR; - } catch (GuileException& e) { - fwprintf(stderr, L"Caught Guile exception: %ls\n", e.getMessge().c_str()); - fwprintf(stderr, L"Debug: Input stream: eof=%ls, lastRead=%d\n", (cin.eof() ? L"true" : L"false"), cin.gcount()); - resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR; - } - - exit(resultCode); -} - -int main(int argc, char**argv) { - scm_boot_guile(argc, argv, relpipeMain, nullptr); - return 222; // never reached – see exit(resultCode) above -}