From 1bc1ae8cd09851faa05345f5a6b105b02fe75dd2 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Thu, 19 Nov 2020 18:22:36 +0200 Subject: Drop args.hxx dependency Replace args.hxx with QCommandLineParser. --- src/bookmarks/builtins.cpp | 105 --------------------------------------------- 1 file changed, 105 deletions(-) delete mode 100644 src/bookmarks/builtins.cpp (limited to 'src/bookmarks/builtins.cpp') diff --git a/src/bookmarks/builtins.cpp b/src/bookmarks/builtins.cpp deleted file mode 100644 index f7b6f3f..0000000 --- a/src/bookmarks/builtins.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - * This file is part of smolbote. It's copyrighted by the contributors recorded - * in the version control history of the file, available from its original - * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "builtins.h" -#include "bookmarkmodel.h" -#include "configuration.h" -#include -#include -#include -#include - -int builtins::bookmarks(const std::string &progname, std::vector::const_iterator beginargs, std::vector::const_iterator endargs) -{ - args::ArgumentParser parser("bookmarks", - "If an output location is not specified, this command will append imported bookmarks to the browser's bookmarks.\n" - "If an output location is specified, this command will load all XBEL-format bookmarks, then all JSON-format bookmarks, and write them to the output location."); - parser.Prog(progname); - - args::HelpFlag help(parser, "help", "Display this help message and exit.", { 'h', "help" }); - args::ValueFlag save(parser, "file, stdout", "Output location.", { 'e', "export" }); - args::ValueFlagList import_xbel(parser, "bookmarks.xbel", "Import xbel format.", { 'x', "import-xbel" }); - args::ValueFlagList import_json(parser, "bookmarks.json", "Import json format.", { 'j', "import-json" }); - - try { - parser.ParseArgs(beginargs, endargs); - } catch(args::Help &) { - std::cout << parser; - return 0; - } catch(args::Error &e) { - std::cerr << e.what() << std::endl; - std::cerr << parser; - return -1; - } - - auto *model = new BookmarkModel; - - // implicit bookmarks.path import - if(!save) { - Configuration conf; - QFile f(conf.value("bookmarks.path").value()); - if(f.open(QIODevice::ReadOnly | QIODevice::Text)) { - BookmarkFormat(&f) >> model; - f.close(); - } - } - - for(const auto &i : args::get(import_xbel)) { - QFile f(QString::fromStdString(i)); - if(f.open(QIODevice::ReadOnly | QIODevice::Text)) { - BookmarkFormat(&f) >> model; - f.close(); - } else { - spdlog::error("Could not open %s", i); - return -1; - } - } - - for(const auto &i : args::get(import_json)) { - QFile f(QString::fromStdString(i)); - if(f.open(QIODevice::ReadOnly | QIODevice::Text)) { - BookmarkFormat(&f) >> model; - f.close(); - } else { - spdlog::error("Could not open %s", i); - return -1; - } - } - - QIODevice *output = nullptr; - if(save && args::get(save) == "stdout") { - output = new QBuffer; - QObject::connect(output, &QIODevice::aboutToClose, [output]() { - output->seek(0); - std::cout << qUtf8Printable(output->readAll()) << std::endl; - }); - - output->open(QIODevice::ReadWrite | QIODevice::Text); - - } else if(!save) { - Configuration conf; - output = new QFile(conf.value("bookmarks.path").value()); - } else { - output = new QFile(QString::fromStdString(args::get(save))); - } - - if(!output->isOpen()) { - if(!output->open(QIODevice::ReadWrite | QIODevice::Text)) { - spdlog::error("Could not open output"); - return -1; - } - } - - BookmarkFormat format(output); - format << model; - output->close(); - - delete output; - - return 0; -} -- cgit v1.2.1