8 #include <boost/program_options.hpp>
10 boost::program_options::variables_map
g_vm;
12 boost::program_options::options_description
g_help(
"Help");
13 boost::program_options::options_description
g_functions(
"Functions");
14 boost::program_options::options_description
g_parameters(
"Parameters");
16 boost::program_options::options_description
g_all(
"All options");
17 boost::program_options::options_description
g_hidden(
"Hidden options");
18 boost::program_options::options_description
g_visible(
"Allowed options");
20 int main(
int argc,
char* argv[])
25 std::string dstype =
"";
26 std::string connstr =
"";
27 std::vector<std::string> dataset;
28 std::vector<std::string> datasets;
29 bool dsParams =
false;
30 bool listdatasets =
false;
32 bool pkDetails =
false;
33 bool fkDetails =
false;
34 bool ukDetails =
false;
35 bool idxDetails =
false;
36 bool ccDetails =
false;
38 std::cout << std::endl <<
"TerraLib Data Source Info" << std::endl;
39 std::cout <<
"-------------------------" << std::endl << std::endl;
42 (
"list-datasets",
"Show a DataSet list of a DataSource")
43 (
"show-all",
"Show all Data Source informations")
44 (
"show-ds-params",
"Show all Data Source parameters required")
49 (
"ds-type", boost::program_options::value<std::string>(),
"Data Source Type: POSTGIS, MYSQL, GDAL, ...")
50 (
"conn-str", boost::program_options::value<std::string>(),
"Connection Infomation")
51 (
"dataset", boost::program_options::value<std::vector<std::string>>()->multitoken(),
"DataSet to be described")
52 (
"datasets", boost::program_options::value<std::vector<std::string>>()->multitoken(),
"List of one or more DataSets to be described")
53 (
"pk-details",
"Show Primary Key Details")
54 (
"fk-details",
"Show Foreign Key Details")
55 (
"uk-details",
"Show Unique Key Details")
56 (
"idx-details",
"Show Indexes Details")
57 (
"cc-details",
"Show Check Contraints Details")
65 boost::program_options::store(boost::program_options::parse_command_line(argc, argv,
g_all),
g_vm);
67 boost::program_options::notify(
g_vm);
69 if(
g_vm.count(
"help") ||
g_vm.empty())
72 std::cout <<
"---------------------------" << std::endl;
76 dstype =
g_vm.count(
"ds-type") != 0 ?
g_vm[
"ds-type"].as<std::string>() : std::string();
77 connstr =
g_vm.count(
"conn-str") != 0 ?
g_vm[
"conn-str"].as<std::string>() : std::string();
78 dataset =
g_vm.count(
"dataset") != 0 ?
g_vm[
"dataset"].as<std::vector<std::string>>() : std::vector<std::string>();
79 datasets =
g_vm.count(
"datasets") != 0 ?
g_vm[
"datasets"].as<std::vector<std::string>>() : std::vector<std::string>();
80 datasets.insert(datasets.end(), dataset.begin(), dataset.end());
81 dsParams =
g_vm.count(
"show-ds-params")?
true:
false;
82 listdatasets =
g_vm.count(
"list-datasets") ?
true :
false;
83 showAll =
g_vm.count(
"show-all") ?
true :
false;
85 pkDetails =
g_vm.count(
"pk-details")?
true:
false;
86 fkDetails =
g_vm.count(
"fk-details")?
true:
false;
87 ukDetails =
g_vm.count(
"uk-details")?
true:
false;
88 idxDetails =
g_vm.count(
"idx-details")?
true:
false;
89 ccDetails =
g_vm.count(
"cc-details")?
true:
false;
99 else if(!dstype.empty() && !connstr.empty())
101 if(!pm.
init(dstype, connstr))
104 std::cout <<
"---------------------------" << std::endl;
110 pm.
printAllInfo(pkDetails, fkDetails, ukDetails, idxDetails, ccDetails);
112 else if(!datasets.empty())
114 pm.
printDataSetInfo(datasets, pkDetails, fkDetails, ukDetails, idxDetails, ccDetails);
123 std::cout <<
"Command Line Error: ds-type missing!" << std::endl;
124 std::cout <<
"---------------------------" << std::endl;
129 std::cout <<
"Command Line Error: conn-str missing!" << std::endl;
130 std::cout <<
"---------------------------" << std::endl;
138 catch(std::exception& e)
140 std::cout <<
"The application concluded erroneously: " << e.what() << std::endl;
144 std::cout <<
"The application concluded unexpectedly!" << std::endl;
boost::program_options::options_description g_functions("Functions")
Group of functions options.
boost::program_options::options_description g_all("All options")
All options.
boost::program_options::options_description g_visible("Allowed options")
Which will be shown to the user.
void printDataSetInfo(std::vector< std::string > dataSetNameList, bool pkDetails, bool fkDetails, bool ukDetails, bool idxDetails, bool ccDetails)
Print Data Set Informations.
void printDataSourceParameters(std::string dsType)
Print Data Source Parameters.
void finalize()
It finalizes the TerraLib Platform.
void printDataSetNameList()
Print Data Set Name List.
boost::program_options::options_description g_hidden("Hidden options")
Which will not be shown to the user.
boost::program_options::options_description g_parameters("Parameters")
Group of parameters options.
void printAllInfo(bool pkDetails, bool fkDetails, bool ukDetails, bool idxDetails, bool ccDetails)
Print All Data Source Informations.
int main(int argc, char *argv[])
This file contains include headers for the TerraLib Common Runtime module.
boost::program_options::variables_map g_vm
Map o options after parse.
static TerraLib & getInstance()
It returns a reference to the singleton instance.
Class with methods to print the Data SOurce information.
Informations printing manager.
boost::program_options::options_description g_help("Help")
Group of help options.
void initialize()
It initializes the TerraLib Platform.
bool init(std::string dstype, std::string connstr)
Init.