/* Copyright © 2015 Gluzskiy Alexandr (sss) This file is part of Unknown Download Manager (UDM). UDM 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, either version 2 of the License, or (at your option) any later version. UDM 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 UDM. If not, see . */ #include #include #include #include #include #include #include core_api *module_api = nullptr; modules_handler *modules = nullptr; namespace bpo = boost::program_options; namespace bpt = boost::property_tree; bpt::ptree config; int main(int argc, char *argv[]) { bpo::options_description desc("Available commands and options"); desc.add_options() ("help", "this message") ("daemon", "fork to background") ("config", bpo::value(), "use specified config file instead of \"~/.config/udm/udm.conf\"") ("list-modules", "list all installed modules") ("run", "start UDM server") ; bool daemon = false, run = false; std::string config_path = "~/.config/udm/udm.conf"; try{ bpo::variables_map vm; bpo::store(bpo::parse_command_line(argc, argv, desc), vm); bpo::notify(vm); //load config first, as it may be needed for other commands if(vm.count("config")) config_path = vm["config"].as(); if(boost::filesystem::exists(config_path) && boost::filesystem::is_regular(config_path)) bpt::read_info(config_path, config); //TODO: finish this else std::cerr<<"failed to load config: \"" + config_path + "\", file does not exists or is not regular file\n"; if(vm.count("help")) { std::cout<list_modules(); return 0; } if(vm.count("run")) { run = true; } } catch(std::exception &e) { std::cerr<<"error: "<