]> git.armaanb.net Git - gen-shell.git/blob - src/Sarge/ada/test/sarge_test.adb
added argument parsing with Sarge
[gen-shell.git] / src / Sarge / ada / test / 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 textarg: Unbounded_String;
30
31 begin
32         -- Create Sarge instance, set stuff, parse stuff.
33         Sarge.setArgument(+"h", +"help", +"Get help.", False);
34         Sarge.setArgument(+"k", +"kittens", +"K is for kittens. Everyone needs kittens in their life.", True);
35         Sarge.setArgument(+"n", +"number", +"Gimme a number. Any number.", True);
36         Sarge.setArgument(+"a", +"apple", +"Just an apple.", False);
37         Sarge.setArgument(+"b", +"bear", +"Look, it's a bear.", False);
38         Sarge.setArgument(+"", +"snake", +"Snakes only come in long form, there are no short snakes.", False);
39         Sarge.setDescription(+"Sarge command line argument parsing testing app. For demonstration purposes and testing.");
40         Sarge.setUsage(+"sarge_test <options>");
41
42         if Sarge.parseArguments /= True then
43                 put_line("Couldn't parse arguments...");
44                 return;
45         end if;
46
47         put_line("Number of flags found: " & Sarge.flagCount'Image);
48
49         if Sarge.exists(+"help") /= False then
50                 Sarge.printHelp;
51         else
52                 put_line("No help requested...");
53         end if;
54
55         -- Read out Kittens and Number.
56         if Sarge.getFlag(+"kittens", kittens) = True then
57                 put_line("Got kittens: " & kittens);
58         end if;
59
60         if Sarge.getFlag(+"number", number) = True then
61                 put_line("Got number: " & number);
62         end if;
63
64         if Sarge.getTextArgument(0, textarg) = True then
65                 put_line("Got text argument: " & textarg);
66         end if;
67
68 end Sarge_Test;