4 #include <boost/filesystem.hpp>
5 #include <boost/program_options.hpp>
7 #include "config/config.h"
10 #include "utilities/aktualizr_version.h"
12 namespace bpo = boost::program_options;
14 bpo::variables_map parse_options(
int argc,
char *argv[]) {
15 bpo::options_description description(
16 "A tool similar to wget that will do an HTTP get on the given URL using the device's configured credentials.");
20 description.add_options()
21 (
"help,h",
"print usage")
22 (
"version,v",
"Current aktualizr version")
23 (
"config,c", bpo::value<std::vector<boost::filesystem::path> >()->composing(),
"configuration file or directory")
24 (
"loglevel", bpo::value<int>(),
"set log level 0-5 (trace, debug, info, warning, error, fatal)")
25 (
"url,u", bpo::value<std::string>(),
"url to get");
28 bpo::variables_map vm;
29 std::vector<std::string> unregistered_options;
31 bpo::basic_parsed_options<char> parsed_options = bpo::command_line_parser(argc, argv).options(description).run();
32 bpo::store(parsed_options, vm);
34 if (vm.count(
"help") != 0) {
35 std::cout << description <<
'\n';
39 }
catch (
const bpo::required_option &ex) {
41 std::cout << ex.what() << std::endl << description;
43 }
catch (
const bpo::error &ex) {
44 std::cout << ex.what() << std::endl;
45 std::cout << description;
52 int main(
int argc,
char *argv[]) {
53 logger_init(isatty(1) == 1);
54 logger_set_threshold(boost::log::trivial::info);
56 bpo::variables_map commandline_map = parse_options(argc, argv);
60 Config config(commandline_map);
61 std::string body = aktualizrGet(config, commandline_map[
"url"].as<std::string>());
65 }
catch (
const std::exception &ex) {
66 LOG_ERROR << ex.what();