grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] search: add optional --quiet parameter


From: Carlo Caione
Subject: [PATCH] search: add optional --quiet parameter
Date: Thu, 14 Dec 2017 12:31:23 +0000

From: Daniel Drake <address@hidden>

Currently when you search for a file, if no result is found it prints
an error message.

That's not ideal when the file is optional, so add a --quiet arg
to silence this.
---
 grub-core/commands/search.c      | 6 +++---
 grub-core/commands/search_wrap.c | 8 +++++---
 include/grub/search.h            | 6 +++---
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/grub-core/commands/search.c b/grub-core/commands/search.c
index 7dd32e445..73d69b1d1 100644
--- a/grub-core/commands/search.c
+++ b/grub-core/commands/search.c
@@ -261,7 +261,7 @@ try (struct search_ctx *ctx)
 }
 
 void
-FUNC_NAME (const char *key, const char *var, int no_floppy,
+FUNC_NAME (const char *key, const char *var, int no_floppy, int quiet,
           char **hints, unsigned nhints)
 {
   struct search_ctx ctx = {
@@ -292,7 +292,7 @@ FUNC_NAME (const char *key, const char *var, int no_floppy,
   else
     try (&ctx);
 
-  if (grub_errno == GRUB_ERR_NONE && ctx.count == 0)
+  if (!quiet && grub_errno == GRUB_ERR_NONE && ctx.count == 0)
     grub_error (GRUB_ERR_FILE_NOT_FOUND, "no such device: %s", key);
 }
 
@@ -303,7 +303,7 @@ grub_cmd_do_search (grub_command_t cmd __attribute__ 
((unused)), int argc,
   if (argc == 0)
     return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("one argument expected"));
 
-  FUNC_NAME (args[0], argc == 1 ? 0 : args[1], 0, (args + 2),
+  FUNC_NAME (args[0], argc == 1 ? 0 : args[1], 0, 0, (args + 2),
             argc > 2 ? argc - 2 : 0);
 
   return grub_errno;
diff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c
index d7fd26b94..c921cc8a7 100644
--- a/grub-core/commands/search_wrap.c
+++ b/grub-core/commands/search_wrap.c
@@ -40,6 +40,7 @@ static const struct grub_arg_option options[] =
      N_("Set a variable to the first device found."), N_("VARNAME"),
      ARG_TYPE_STRING},
     {"no-floppy",      'n', 0, N_("Do not probe any floppy drive."), 0, 0},
+    {"quiet",          'q', 0, N_("Don't print error if no match."), 0, 0},
     {"hint",           'h', GRUB_ARG_OPTION_REPEATABLE,
      N_("First try the device HINT. If HINT ends in comma, "
        "also try subpartitions"), N_("HINT"), ARG_TYPE_STRING},
@@ -73,6 +74,7 @@ enum options
     SEARCH_FS_UUID,
     SEARCH_SET,
     SEARCH_NO_FLOPPY,
+    SEARCH_QUIET,
     SEARCH_HINT,
     SEARCH_HINT_IEEE1275,
     SEARCH_HINT_BIOS,
@@ -182,13 +184,13 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, 
char **args)
 
   if (state[SEARCH_LABEL].set)
     grub_search_label (id, var, state[SEARCH_NO_FLOPPY].set, 
-                      hints, nhints);
+                      state[SEARCH_QUIET].set, hints, nhints);
   else if (state[SEARCH_FS_UUID].set)
     grub_search_fs_uuid (id, var, state[SEARCH_NO_FLOPPY].set,
-                        hints, nhints);
+                        state[SEARCH_QUIET].set, hints, nhints);
   else if (state[SEARCH_FILE].set)
     grub_search_fs_file (id, var, state[SEARCH_NO_FLOPPY].set, 
-                        hints, nhints);
+                        state[SEARCH_QUIET].set, hints, nhints);
   else
     grub_error (GRUB_ERR_INVALID_COMMAND, "unspecified search type");
 
diff --git a/include/grub/search.h b/include/grub/search.h
index d80347df3..4c645a2b0 100644
--- a/include/grub/search.h
+++ b/include/grub/search.h
@@ -20,10 +20,10 @@
 #define GRUB_SEARCH_HEADER 1
 
 void grub_search_fs_file (const char *key, const char *var, int no_floppy,
-                         char **hints, unsigned nhints);
+                         int quiet, char **hints, unsigned nhints);
 void grub_search_fs_uuid (const char *key, const char *var, int no_floppy,
-                         char **hints, unsigned nhints);
+                         int quiet, char **hints, unsigned nhints);
 void grub_search_label (const char *key, const char *var, int no_floppy,
-                       char **hints, unsigned nhints);
+                       int quiet, char **hints, unsigned nhints);
 
 #endif
-- 
2.14.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]