mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-04-23 07:31:32 +00:00
Better argument parsing logic
This commit is contained in:
parent
353c3c7d81
commit
0f219e5ae6
@ -148,29 +148,25 @@ int main(int argc, char *argv[]) {
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
munmap(buf, size);
|
munmap(buf, size);
|
||||||
} else if (argc > 2 && action == "unpack") {
|
} else if (argc > 2 && action == "unpack") {
|
||||||
if (argv[2] == "-n"sv) {
|
int idx = 2;
|
||||||
if (argv[3] == "-h"sv) {
|
bool nodecomp = false;
|
||||||
if (argc == 4)
|
bool hdr = false;
|
||||||
|
for (;;) {
|
||||||
|
if (idx >= argc)
|
||||||
|
usage(argv[0]);
|
||||||
|
if (argv[idx][0] != '-')
|
||||||
|
break;
|
||||||
|
for (char *flag = &argv[idx][1]; *flag; ++flag) {
|
||||||
|
if (*flag == 'n')
|
||||||
|
nodecomp = true;
|
||||||
|
else if (*flag == 'h')
|
||||||
|
hdr = true;
|
||||||
|
else
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
return unpack(argv[4], true, true);
|
|
||||||
} else {
|
|
||||||
if (argc == 3)
|
|
||||||
usage(argv[0]);
|
|
||||||
return unpack(argv[3], true);
|
|
||||||
}
|
}
|
||||||
} else if (argv[2] == "-h"sv) {
|
++idx;
|
||||||
if (argv[3] == "-n"sv) {
|
|
||||||
if (argc == 4)
|
|
||||||
usage(argv[0]);
|
|
||||||
return unpack(argv[4], true, true);
|
|
||||||
} else {
|
|
||||||
if (argc == 3)
|
|
||||||
usage(argv[0]);
|
|
||||||
return unpack(argv[3], false, true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return unpack(argv[2]);
|
|
||||||
}
|
}
|
||||||
|
return unpack(argv[idx], nodecomp, hdr);
|
||||||
} else if (argc > 2 && action == "repack") {
|
} else if (argc > 2 && action == "repack") {
|
||||||
if (argv[2] == "-n"sv) {
|
if (argv[2] == "-n"sv) {
|
||||||
if (argc == 3)
|
if (argc == 3)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user