ECC-1500: Tools: Print the online help page URL

This commit is contained in:
Shahram Najm 2023-01-04 21:16:24 +00:00
parent 0116ae19fe
commit 350d8e6747
38 changed files with 60 additions and 22 deletions

View File

@ -45,8 +45,9 @@ const char* tool_description =
"\n\tFloating-point values are compared exactly by default, different tolerances can be defined (see -A -R)."
"\n\tDefault behaviour: absolute error=0, bit-by-bit compare, same order in files.";
const char* tool_name = "bufr_compare";
const char* tool_usage = "[options] bufr_file1 bufr_file2";
const char* tool_name = "bufr_compare";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_compare";
const char* tool_usage = "[options] bufr_file1 bufr_file2";
GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b)
{

View File

@ -19,8 +19,9 @@ const char* tool_description =
"Copies the content of BUFR files printing"
" values of some keys."
"\n\tIf the name of the output_bufr_file contains a key enclosed in square brackets, its value will be used.";
const char* tool_name = "bufr_copy";
const char* tool_usage = "[options] bufr_file bufr_file ... output_bufr_file";
const char* tool_name = "bufr_copy";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_copy";
const char* tool_usage = "[options] bufr_file bufr_file ... output_bufr_file";
grib_option grib_options[] = {
/* {id, args, help}, on, command_line, value */

View File

@ -64,6 +64,7 @@ grib_option grib_options[] = {
const char* tool_description = "Dump the content of a BUFR file in different formats.";
const char* tool_name = "bufr_dump";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_dump";
const char* tool_usage = "[options] bufr_file bufr_file ...";
static int json = 0;
static int dump_descriptors = 0;

View File

@ -34,10 +34,10 @@ const char* tool_description =
"Apply the rules defined in rules_file to each BUFR "
"message\n\tin the BUFR files provided as arguments.\n\t"
"If you specify '-' (a single dash) for the rules_file, the rules will be read from standard input.";
const char* tool_name = "bufr_filter";
const char* tool_usage =
"[options] rules_file "
"bufr_file bufr_file ...";
const char* tool_name = "bufr_filter";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_filter";
const char* tool_usage = "[options] rules_file "
"bufr_file bufr_file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -39,8 +39,9 @@ const char* tool_description =
"Get values of some header keys from a BUFR file."
"\n\tIt is similar to bufr_ls, but fails returning an error code "
"\n\twhen an error occurs (e.g. key not found).";
const char* tool_name = "bufr_get";
const char* tool_usage = "[options] file file ...";
const char* tool_name = "bufr_get";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_get";
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -18,8 +18,9 @@
const char* tool_description =
"Build an index file for a set of input BUFR files.\n"
"\tWarning: THIS TOOL IS STILL EXPERIMENTAL";
const char* tool_name = "bufr_index_build";
const char* tool_usage = "[options] file file ... ";
const char* tool_name = "bufr_index_build";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ... ";
grib_index* idx = NULL;
char* keys;
char* default_keys = "mars";

View File

@ -42,6 +42,7 @@ const char* tool_description =
"some header keys.\n\tOnly scalar keys can be printed."
"\n\tIt does not fail when a key is not found.";
const char* tool_name = "bufr_ls";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_ls";
const char* tool_usage = "[options] bufr_file bufr_file ...";
static int first_handle = 1;

View File

@ -45,8 +45,9 @@ const char* tool_description =
"Sets key/value pairs in the input BUFR file and writes"
"\n\teach message to the output_file."
"\n\tIt fails when an error occurs (e.g. key not found).";
const char* tool_name = "bufr_set";
const char* tool_usage = "[options] file file ... output_file";
const char* tool_name = "bufr_set";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/bufr_set";
const char* tool_usage = "[options] file file ... output_file";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -44,6 +44,7 @@ const char* tool_description =
"\n\tDefault behaviour: absolute error=0, bit-by-bit compare, same order in files.";
const char* tool_name = "grib_compare";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_compare";
const char* tool_usage = "[options] grib_file1 grib_file2";
typedef double (*compare_double_proc)(const double*, const double*, double);

View File

@ -20,6 +20,7 @@ const char* tool_description =
" values of some keys."
"\n\tIf the name of the output_grib_file contains a key enclosed in square brackets, its value will be used.";
const char* tool_name = "grib_copy";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_copy";
const char* tool_usage = "[options] grib_file grib_file ... output_grib_file";
grib_option grib_options[] = {

View File

@ -41,6 +41,7 @@ grib_option grib_options[] = {
const char* tool_description = "Dump the content of a GRIB file in different formats.";
const char* tool_name = "grib_dump";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_dump";
const char* tool_usage = "[options] grib_file grib_file ...";
static int json = 0;
static int first_handle = 1;

View File

@ -31,9 +31,9 @@ const char* tool_description =
"message\n\tin the GRIB files provided as arguments.\n\t"
"If you specify '-' (a single dash) for the rules_file, the rules will be read from standard input.";
const char* tool_name = "grib_filter";
const char* tool_usage =
"[options] rules_file "
"grib_file grib_file ...";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_filter";
const char* tool_usage = "[options] rules_file "
"grib_file grib_file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -40,6 +40,7 @@ const char* tool_description =
"\n\tIt is similar to grib_ls, but fails returning an error code "
"\n\twhen an error occurs (e.g. key not found).";
const char* tool_name = "grib_get";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_get";
const char* tool_usage = "[options] grib_file grib_file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -39,6 +39,7 @@ const char* tool_description =
"Print a latitude, longitude, data values list.\n"
"\tNote: Rotated grids are first unrotated";
const char* tool_name = "grib_get_data";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_get_data";
const char* tool_usage = "[options] grib_file grib_file ...";
extern FILE* dump_file;

View File

@ -21,6 +21,7 @@ int grib_options_count = sizeof(grib_options) / sizeof(grib_option);
const char* tool_description = "Histogram of GRIB files";
const char* tool_name = "grib_histogram";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] grib_file grib_file ...";
int main(int argc, char* argv[])

View File

@ -17,6 +17,7 @@
const char* tool_description = "Build an index file for a set of input GRIB files.";
const char* tool_name = "grib_index_build";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_index_build";
const char* tool_usage = "[options] grib_file grib_file ... ";
static grib_index* idx = NULL;
static const char* keys;

View File

@ -45,8 +45,9 @@ grib_option grib_options[] = {
const char* tool_description =
"List content of GRIB files printing values of "
"some keys.\n\tIt does not fail when a key is not found.";
const char* tool_name = "grib_ls";
const char* tool_usage = "[options] grib_file grib_file ...";
const char* tool_name = "grib_ls";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_ls";
const char* tool_usage = "[options] grib_file grib_file ...";
static const char* new_handle = "";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -36,6 +36,7 @@ static const char* md5Key = "md5Product";
const char* tool_description = "Merge two fields with identical parameters and different geographical area";
const char* tool_name = "grib_merge";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ... output_file";
grib_option grib_options[] = {

View File

@ -131,7 +131,10 @@ void usage(void)
grib_options_get_help(grib_options[i].id));
}
}
printf("\n\n");
printf("\n");
if (tool_online_doc)
printf("SEE ALSO\n\t%s\n\n", tool_online_doc);
printf("\n");
exit(1);
}

View File

@ -50,8 +50,9 @@ const char* tool_description =
"Sets key/value pairs in the input GRIB file and writes"
"\n\teach message to the output_grib_file."
"\n\tIt fails when an error occurs (e.g. key not found).";
const char* tool_name = "grib_set";
const char* tool_usage = "[options] grib_file grib_file ... output_grib_file";
const char* tool_name = "grib_set";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_set";
const char* tool_usage = "[options] grib_file grib_file ... output_grib_file";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -33,6 +33,7 @@ const char* tool_description =
"\n\tNote: The GRIB geometry should be a regular lat/lon grid or a regular Gaussian grid"
"\n\t(the key \"typeOfGrid\" should be \"regular_ll\" or \"regular_gg\")";
const char* tool_name = "grib_to_netcdf";
const char* tool_online_doc = "https://confluence.ecmwf.int/display/ECC/grib_to_netcdf";
const char* tool_usage = "[options] -o output_file grib_file grib_file ... ";
static char argvString[2048] = {0,};

View File

@ -181,6 +181,7 @@ extern int grib_options_count;
extern const char* tool_name;
extern const char* tool_description;
extern const char* tool_usage;
extern const char* tool_online_doc; /* Can be NULL */
extern FILE* dump_file;

View File

@ -41,6 +41,7 @@ const char* tool_description =
"\n\tDefault behaviour: bit-by-bit compare, same order in files.";
const char* tool_name = "gts_compare";
const char* tool_online_doc = NULL;
const char* tool_usage =
"[options] "
"file file";

View File

@ -14,6 +14,7 @@ const char* tool_description =
"Copies the content of GTS files printing"
" values of some keys.";
const char* tool_name = "gts_copy";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ... output_file";
grib_option grib_options[] = {

View File

@ -35,6 +35,7 @@ grib_option grib_options[] = {
const char* tool_description = "Dump the content of a GTS file in different formats.";
const char* tool_name = "gts_dump";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -31,6 +31,7 @@ const char* tool_description =
"message\n\tin the GTS files provided as arguments.\n\t"
"If you specify '-' (a single dash) for the rules_file, the rules will be read from standard input.";
const char* tool_name = "gts_filter";
const char* tool_online_doc = NULL;
const char* tool_usage =
"[options] rules_file "
"file file ...";

View File

@ -33,6 +33,7 @@ const char* tool_description =
"\n\tIt is similar to gts_ls, but fails returning an error code "
"\n\twhen an error occurs (e.g. key not found).";
const char* tool_name = "gts_get";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -36,6 +36,7 @@ const char* tool_description =
"List content of GTS files printing values of "
"some keys.\n\tIt does not fail when a key is not found.";
const char* tool_name = "gts_ls";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -44,6 +44,7 @@ const char* tool_description =
"\n\tDefault behaviour: absolute error=0, bit-by-bit compare, same order in files.";
const char* tool_name = "metar_compare";
const char* tool_online_doc = NULL;
const char* tool_usage =
"[options] "
"file file";

View File

@ -14,6 +14,7 @@ const char* tool_description =
"Copies the content of METAR files printing"
" values of some keys.";
const char* tool_name = "metar_copy";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ... output_file";
grib_option grib_options[] = {

View File

@ -38,6 +38,7 @@ grib_option grib_options[] = {
const char* tool_description = "Dump the content of a METAR file in different formats.";
const char* tool_name = "metar_dump";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -28,6 +28,7 @@ const char* tool_description =
"Apply the rules defined in rules_file to each METAR "
"message\n\tin the files provided as arguments.";
const char* tool_name = "metar_filter";
const char* tool_online_doc = NULL;
const char* tool_usage =
"[options] rules_file "
"file file ...";

View File

@ -34,6 +34,7 @@ const char* tool_description =
"\n\tIt is similar to metar_ls, but fails returning an error code "
"\n\twhen an error occurs (e.g. key not found).";
const char* tool_name = "metar_get";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -48,6 +48,7 @@ const char* tool_description =
"List content of METAR files printing values of "
"some keys.\n\tIt does not fail when a key is not found.";
const char* tool_name = "metar_ls";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -31,6 +31,7 @@ grib_option grib_options[] = {
const char* tool_description = "Dump the content of a TAF file in different formats.";
const char* tool_name = "taf_dump";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -30,6 +30,7 @@ const char* tool_description =
"Apply the rules defined in rules_file to each TAF "
"message\n\tin the files provided as arguments.";
const char* tool_name = "taf_filter";
const char* tool_online_doc = NULL;
const char* tool_usage =
"[options] rules_file "
"file file ...";

View File

@ -38,6 +38,7 @@ const char* tool_description =
"\n\tIt is similar to taf_ls, but fails returning an error code "
"\n\twhen an error occurs (e.g. key not found).";
const char* tool_name = "taf_get";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);

View File

@ -41,6 +41,7 @@ const char* tool_description =
"List content of TAF files printing values of "
"some keys.\n\tIt does not fail when a key is not found.";
const char* tool_name = "taf_ls";
const char* tool_online_doc = NULL;
const char* tool_usage = "[options] file file ...";
int grib_options_count = sizeof(grib_options) / sizeof(grib_option);