mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:27:43 +00:00
seq: Interpret parameters with ArgsParser
This commit is contained in:
parent
87aed17a46
commit
d16fa32674
1 changed files with 16 additions and 16 deletions
|
@ -6,6 +6,8 @@
|
|||
|
||||
#include <AK/Format.h>
|
||||
#include <AK/StdLibExtras.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/System.h>
|
||||
#include <LibMain/Main.h>
|
||||
#include <stdio.h>
|
||||
|
@ -46,28 +48,26 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
TRY(Core::System::pledge("stdio"));
|
||||
TRY(Core::System::unveil(nullptr, nullptr));
|
||||
|
||||
for (size_t i = 1; i < arguments.strings.size(); i++) {
|
||||
if (arguments.strings[i] == "--help"sv || arguments.strings[i] == "-h") {
|
||||
out("HELP");
|
||||
print_usage(stdout);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
Vector<char const*> parameters;
|
||||
|
||||
Core::ArgsParser args_parser;
|
||||
args_parser.add_positional_argument(parameters, "1 to 3 parameters, interpreted as LAST, FIRST LAST, or FIRST INCREMENT LAST", "parameters");
|
||||
args_parser.parse(arguments);
|
||||
|
||||
double start = 1, step = 1, end = 1;
|
||||
int number_of_start_decimals = 0, number_of_step_decimals = 0, number_of_end_decimals = 0;
|
||||
switch (arguments.strings.size()) {
|
||||
switch (parameters.size()) {
|
||||
case 1:
|
||||
end = get_double(arguments.argv[0], parameters[0], &number_of_end_decimals);
|
||||
break;
|
||||
case 2:
|
||||
end = get_double(arguments.argv[0], arguments.argv[1], &number_of_end_decimals);
|
||||
start = get_double(arguments.argv[0], parameters[0], &number_of_start_decimals);
|
||||
end = get_double(arguments.argv[0], parameters[1], &number_of_end_decimals);
|
||||
break;
|
||||
case 3:
|
||||
start = get_double(arguments.argv[0], arguments.argv[1], &number_of_start_decimals);
|
||||
end = get_double(arguments.argv[0], arguments.argv[2], &number_of_end_decimals);
|
||||
break;
|
||||
case 4:
|
||||
start = get_double(arguments.argv[0], arguments.argv[1], &number_of_start_decimals);
|
||||
step = get_double(arguments.argv[0], arguments.argv[2], &number_of_step_decimals);
|
||||
end = get_double(arguments.argv[0], arguments.argv[3], &number_of_end_decimals);
|
||||
start = get_double(arguments.argv[0], parameters[0], &number_of_start_decimals);
|
||||
step = get_double(arguments.argv[0], parameters[1], &number_of_step_decimals);
|
||||
end = get_double(arguments.argv[0], parameters[2], &number_of_end_decimals);
|
||||
break;
|
||||
default:
|
||||
warnln("{}: unexpected number of arguments", arguments.argv[0]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue