Last active 1 week ago

pretty_print.d Raw
1private void print_help(const ref GetoptResult help_info)
2{
3 import core.runtime;
4 import std.path : baseName;
5 import std.algorithm : map, maxElement;
6
7 writefln("Usage: %s [OPTION...]", Runtime.args[0].baseName);
8 writeln();
9 writeln("Program description");
10 writeln();
11 writeln("Options:");
12
13 string[] flags;
14 foreach (opt; help_info.options)
15 flags ~= opt.optShort ~ (opt.optShort.length ? ", " : " ") ~ opt.optLong;
16
17 size_t width = flags.map!(f => f.length).maxElement + 1;
18
19 foreach (i, opt; help_info.options)
20 writefln(" %-*s %s", width, flags[i], opt.help);
21}