From f74ea03e0ebf23227d134ef836bd1d1347fa31d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Goli=C5=84ski?= Date: Mon, 4 Nov 2019 21:34:29 +0100 Subject: [PATCH] Refactor usage help output code --- geostat.cpp | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/geostat.cpp b/geostat.cpp index 0b7dd01..5686473 100644 --- a/geostat.cpp +++ b/geostat.cpp @@ -13,6 +13,31 @@ const int HIST_MAX = 20; +void show_usage() { + std::cout << "Usage: [-p] [-g file] [-qn] [-MDHLTOYh] [-s size] [-m map]\n"; + std::cout << "Generate stats from Opencaching data or GPX files.\n\n"; + std::cout << " * Data source:\n"; + std::cout << "\t-p\tuse Opencaching.pl\n"; + std::cout << "\t-u user\tuser for Opencaching\n"; + std::cout << "\t-g file\tuse specified gpx file\n"; + std::cout << "\t-q\tuse local SQLite file\n"; + std::cout << "\t-n\tget only unfound caches (works only with SQLite)\n"; + std::cout << " * Output:\n"; + std::cout << "\t-M\tprint geographically extreme caches\n"; + std::cout << "\t-D\tprint furthest and closest caches\n"; + std::cout << "\t-H file\trender a heat map to a file\n"; + std::cout << "\t-s n\tstamp size for a heat map (default = 15)\n"; + std::cout << "\t-e\tuse exponential to flatten the heat map\n"; + std::cout << "\t-m map\tchosen map: Poland, Poland_relief, Poland_big, Europe or a name of voivodeship (default = Poland)\n"; + std::cout << "\t-L\tprint all caches\n"; + std::cout << "\t-T\tprint D/T matrix\n"; + std::cout << "\t-O\tprint owner count for found caches\n"; + std::cout << "\t-Y\tprint types count for found caches\n"; + std::cout << "\t-W\toutput all data in HTML format\n"; + std::cout << "\t-h\tdisplay this help screen\n"; + std::exit(EXIT_FAILURE); +} + void show_histogram(Caches* cc, std::string Cache::*ptr, std::string caption, bool html = 0) { std::map histogram; std::vector> pairs; @@ -71,6 +96,8 @@ int main(int argc, char** argv) { #include "config_user.h" + if (argc == 1) show_usage(); + int o; while ((o = getopt(argc, argv, "qng:d:pu:MDOH:s:m:eLTYWh?")) != -1) switch (o) { @@ -145,28 +172,7 @@ int main(int argc, char** argv) { case 'h': case '?': default: - std::cout << "Usage: [-p] [-g file] [-qn] [-MDHLTOYh] [-s size] [-m map]\n"; - std::cout << "Generate stats from Opencaching data or GPX files.\n\n"; - std::cout << " * Data source:\n"; - std::cout << "\t-p\tuse Opencaching.pl\n"; - std::cout << "\t-u user\tuser for Opencaching\n"; - std::cout << "\t-g file\tuse specified gpx file\n"; - std::cout << "\t-q\tuse local SQLite file\n"; - std::cout << "\t-n\tget only unfound caches (works only with SQLite)\n"; - std::cout << " * Output:\n"; - std::cout << "\t-M\tprint geographically extreme caches\n"; - std::cout << "\t-D\tprint furthest and closest caches\n"; - std::cout << "\t-H file\trender a heat map to a file\n"; - std::cout << "\t-s n\tstamp size for a heat map (default = 15)\n"; - std::cout << "\t-e\tuse exponential to flatten the heat map\n"; - std::cout << "\t-m map\tchosen map: Poland, Poland_relief, Poland_big, Europe or a name of voivodeship (default = Poland)\n"; - std::cout << "\t-L\tprint all caches\n"; - std::cout << "\t-T\tprint D/T matrix\n"; - std::cout << "\t-O\tprint owner count for found caches\n"; - std::cout << "\t-Y\tprint types count for found caches\n"; - std::cout << "\t-W\toutput all data in HTML format\n"; - std::cout << "\t-h\tdisplay this help screen\n"; - std::exit(EXIT_FAILURE); + show_usage(); } if (show_html) {