From e0117410d5ab8242eef0ee8f64067f53b1805253 Mon Sep 17 00:00:00 2001 From: Arnaud Blanchard <arnaud.blanchard@ensea.fr> Date: Sun, 22 Apr 2018 23:08:12 +0200 Subject: [PATCH] Update README.md --- README.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ecbc6d1..290a942 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,75 @@ BLC program =========== -Copyright : [ETIS](http://www.etis.ensea.fr/neurocyber) - ENSEA, University of Cergy-Pontoise, CNRS (2011-2016) -Author : [Arnaud Blanchard](http://arnaudblanchard.thoughtsheet.com) -Licence : [CeCILL v2.1](http://www.cecill.info/licences/Licence_CeCILL_V2-en.html) +Library providing command line program facilities -### Library providing command line program facilities - Parsing arguments -- Interacting with the user +- Interacting with the user in a terminal + +BLC program +============ + +Exemple based on **t_parse_arguments** +------------------------------------------------ + +code +```c++ +#include "blc_program.h" +int main( int argc, char **argv){ + char const *text_option, *first_parameter, *optional_parameter, *flag; + //The text that appear when help is called. + blc_program_set_description("Program to show how to parse arguments."); + //Define the options to be parsed with 'blc_program_option_interpret'. + blc_program_add_option(&flag, 'f', "flag", NULL, "Show how to read a flag", NULL); + blc_program_add_option(&text_option, 's', "simple", "string", "Simple text as option", "Default text"); + //Require one argument. + blc_program_add_parameter(&first_parameter, "string", 1, "Required parameter ", NULL); + //Accept a second optional argument. + blc_program_add_parameter(&optional_parameter, "string", 0, "Show how to accept simple text as option", NULL); + //Interprets the arguments, associates variables and print program name as title. + blc_program_option_interpret_and_print_title(&argc, &argv); + //We display on stderr. It is a good habit to use for interaction with the user + fprintf(stderr, "Display help:\n"); + //Display all the possible options / arguments + blc_program_option_display_help(); + //After interpret options, we can use the variable **blc_program_name** + fprintf(stderr, "Parsed arguments:\n"); + //We present the parsed variables + fprintf(stderr, "- The simple option text is: '%s'\n", text_option); + if (flag) fprintf(stderr, "- The flag is activated, its content (usually useless) is : '%s'\n", flag); + else fprintf(stderr, "- The flag is not activated.\n"); + fprintf(stderr, "- The first argument is: '%s'\n", first_parameter); + if (optional_parameter) fprintf(stderr, "- The optional argument is: '%s'\n", optional_parameter); + else fprintf(stderr, "- No optional argument\n"); + return 0; +} +``` + +Execute: `../run.sh t_parse_arguments arg1 arg2` + +Result +``` +Display help: + +usage: t_parse_args [-f] [-s string] string [string] + +Program to show how to parse arguments. + +positional arguments: + string Required parameter string Show how to accept simple text as option +optional arguments: + -f, --flag Show how to read a flag + -s, --simple string Simple text as option (default: Default text) + +Parsed arguments: +- The simple option text is: 'Default text' +- The flag is not activated. +- The first argument is: 'arg1' +- The optional argument is: 'arg2' +``` + + + -### [Online documentation](https://framagit.org/blaar/blc_program/wikis/home) -- GitLab