]> git.armaanb.net Git - gen-shell.git/blob - src/Sarge/ada/gps/src/sarge_test.adb
added argument parsing with Sarge
[gen-shell.git] / src / Sarge / ada / gps / src / sarge_test.adb
1 --      sarge_test.adb - Implementation file for the Sarge command line argument parser test.
2
3 --      Revision 0
4
5 --      Features:
6 --                      -
7
8 --      Notes:
9 --                      -
10
11 --      2019/04/10, Maya Posch
12
13
14 with Sarge;
15 with Ada.Text_IO;
16 use Ada.Text_IO;
17 with Ada.Strings.Unbounded;
18 use Ada.Strings.Unbounded;
19 with Ada.Strings.Unbounded.Text_IO;
20 use Ada.Strings.Unbounded.Text_IO;
21
22
23 procedure Sarge_Test is
24
25 function "+"(S : in String) return Unbounded_String renames Ada.Strings.Unbounded.To_Unbounded_String;
26
27 kittens: Unbounded_String;
28 number: Unbounded_String;
29
30 begin
31    -- Create Sarge instance, set stuff, parse stuff.
32    Sarge.setArgument(+"h", +"help", +"Get help.", False);
33    Sarge.setArgument(+"k", +"kittens", +"K is for kittens. Everyone needs kittens in their life.", True);
34    Sarge.setArgument(+"n", +"number", +"Gimme a number. Any number.", True);
35    Sarge.setArgument(+"a", +"apple", +"Just an apple.", False);
36    Sarge.setArgument(+"b", +"bear", +"Look, it's a bear.", False);
37    Sarge.setDescription(+"Sarge command line argument parsing testing app. For demonstration purposes and testing.");
38    Sarge.setUsage(+"sarge_test <options>");
39
40    if Sarge.parseArguments /= True then
41       put_line("Couldn't parse arguments...");
42       return;
43    end if;
44
45    put_line("Number of flags found: " & Sarge.flagCount'Image);
46
47    if Sarge.exists(+"help") /= False then
48       Sarge.printHelp;
49    else
50       put_line("No help requested...");
51    end if;
52
53    -- Read out Kittens and Number.
54    if Sarge.getFlag(+"kittens", kittens) = True then
55         put_line("Got kittens: " & kittens);
56    end if;
57
58    if Sarge.getFlag(+"number", number) = True then
59         put_line("Got number: " & number);
60    end if;
61
62 end Sarge_Test;