Add new cpio command: "exists", to magiskboot

This commit is contained in:
topjohnwu 2018-12-05 20:27:48 -05:00
parent 8b4008798f
commit 1fae89cbb6
2 changed files with 5 additions and 1 deletions

View File

@ -39,6 +39,8 @@ static void usage(char *arg0) {
" Do cpio commands to <incpio> (modifications are done directly)\n" " Do cpio commands to <incpio> (modifications are done directly)\n"
" Each command is a single argument, use quotes if necessary\n" " Each command is a single argument, use quotes if necessary\n"
" Supported commands:\n" " Supported commands:\n"
" exists ENTRY\n"
" Return 0 if ENTRY exists, else return 1\n"
" rm [-r] ENTRY\n" " rm [-r] ENTRY\n"
" Remove ENTRY, specify [-r] to remove recursively\n" " Remove ENTRY, specify [-r] to remove recursively\n"
" mkdir MODE ENTRY\n" " mkdir MODE ENTRY\n"

View File

@ -230,7 +230,9 @@ int cpio_commands(int argc, char *argv[]) {
char *sha1 = cpio.sha1(); char *sha1 = cpio.sha1();
if (sha1) printf("%s\n", sha1); if (sha1) printf("%s\n", sha1);
return 0; return 0;
} else if (cmdc >= 2 && strcmp(cmdv[0], "backup") == 0) { } else if (cmdc == 2 && strcmp(cmdv[0], "exists") == 0) {
exit(cpio.find(cmdv[1]) < 0);
} else if (cmdc == 2 && strcmp(cmdv[0], "backup") == 0) {
cpio.backup(cmdv[1]); cpio.backup(cmdv[1]);
} else if (cmdc >= 2 && strcmp(cmdv[0], "rm") == 0) { } else if (cmdc >= 2 && strcmp(cmdv[0], "rm") == 0) {
bool r = cmdc > 2 && strcmp(cmdv[1], "-r") == 0; bool r = cmdc > 2 && strcmp(cmdv[1], "-r") == 0;