X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fgrub2%2Fbuiltins.c;h=6ada2a64c130ae05c66c12c15753e84e0af684e2;hp=75110760082ec51324f685e5c5b84bebac5e5745;hb=a1fb38f17bfa60aac89d0dd21dd8ccc739d794bf;hpb=13e41764a7450302b874668bc1a3fbf6be25b781 diff --git a/discover/grub2/builtins.c b/discover/grub2/builtins.c index 7511076..6ada2a6 100644 --- a/discover/grub2/builtins.c +++ b/discover/grub2/builtins.c @@ -154,6 +154,15 @@ static bool builtin_test_op_file(struct grub2_script *script, char op, return result; } +static bool builtin_test_op_dir(struct grub2_script *script, char op, + const char *dir) +{ + if (op != 'd') + return false; + + return parser_check_dir(script->ctx, script->ctx->device, dir) == 0; +} + static bool builtin_test_op(struct grub2_script *script, int argc, char **argv, int *consumed) { @@ -207,6 +216,11 @@ static bool builtin_test_op(struct grub2_script *script, *consumed = 2; return builtin_test_op_file(script, op[1], a1); } + + if (!strcmp(op, "-d")) { + *consumed = 2; + return builtin_test_op_dir(script, op[1], a1); + } } op = argv[0];