+/* See comment at builtin_test_op_file for differences between how
+ * GRUB implements file tests versus Petitboot's GRUB parser. */
+static bool builtin_test_op_dir(struct grub2_script *script, char op,
+ const char *dir)
+{
+ int rc;
+ struct stat statbuf;
+
+ if (op != 'd')
+ return false;
+
+ rc = parser_stat_path(script->ctx, script->ctx->device, dir, &statbuf);
+ if (rc) {
+ return false;
+ }
+
+ return S_ISDIR(statbuf.st_mode);
+}
+