]> git.armaanb.net Git - gen-shell.git/blob - src/Sarge/test/sarge_test.cpp
added argument parsing with Sarge
[gen-shell.git] / src / Sarge / test / sarge_test.cpp
1 /*
2         sarge_test.cpp - Implementation file for the Sarge command line argument parser test.
3         
4         Revision 0
5         
6         Features:
7                         - 
8         
9         Notes:
10                         -
11                          
12         2019/03/16, Maya Posch
13         
14 */
15
16
17 #include "../src/sarge.h"
18
19 #include <iostream>
20
21
22 int main(int argc, char** argv) {
23         // Create Sarge instance, set stuff, parse stuff.
24         Sarge sarge;
25         
26         sarge.setArgument("h", "help", "Get help.", false);
27         sarge.setArgument("k", "kittens", "K is for kittens. Everyone needs kittens in their life.", true);
28         sarge.setArgument("n", "number", "Gimme a number. Any number.", true);
29         sarge.setArgument("a", "apple", "Just an apple.", false);
30         sarge.setArgument("b", "bear", "Look, it's a bear.", false);
31         sarge.setArgument("", "snake", "Snakes only come in long form, there are no short snakes.", false);
32         sarge.setDescription("Sarge command line argument parsing testing app. For demonstration purposes and testing.");
33         sarge.setUsage("sarge_test <options>");
34         
35         if (!sarge.parseArguments(argc, argv)) {
36                 std::cerr << "Couldn't parse arguments..." << std::endl;
37                 return 1;
38         }
39         
40         std::cout << "Number of flags found: " << sarge.flagCount() << std::endl;
41         
42         if (sarge.exists("help")) {
43                 sarge.printHelp();
44         }
45         else {
46                 std::cout << "No help requested..." << std::endl;
47         }
48         
49         std::string kittens;
50         if (sarge.getFlag("kittens", kittens)) {
51                 std::cout << "Got kittens: " << kittens << std::endl;
52         }
53         
54         std::string number;
55         if (sarge.getFlag("number", number)) {
56                 std::cout << "Got number: " << number << std::endl;
57         }
58         
59         std::string textarg;
60         if (sarge.getTextArgument(0, textarg)) {
61                 std::cout << "Got text argument: " << textarg << std::endl;
62         }
63         
64         return 0;
65 }
66