[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/2] Add emdedded-config hidden option to grub-install.
From: |
Glenn Washburn |
Subject: |
[PATCH 2/2] Add emdedded-config hidden option to grub-install. |
Date: |
Mon, 19 May 2014 02:03:07 -0500 |
One thing to note with this patch is that the supplied embedded config
file is appended to the normally generated one. I did this to allow
the default root and prefix to be generated and subsequently overridden
if desired.
---
util/grub-install.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/util/grub-install.c b/util/grub-install.c
index d66030f..85dd3a1 100644
--- a/util/grub-install.c
+++ b/util/grub-install.c
@@ -74,6 +74,7 @@ static char *memdisk = NULL;
static int have_load_cfg = 0;
static FILE * load_cfg_f = NULL;
static char *load_cfg;
+static char *embed_cfg = NULL;
static int install_bootsector = 1;
static char *label_font;
static char *label_color;
@@ -100,6 +101,7 @@ enum
OPTION_BOOTLOADER_ID,
OPTION_EFI_DIRECTORY,
OPTION_MEMDISK,
+ OPTION_EMBED_CFG,
OPTION_FONT,
OPTION_DEBUG,
OPTION_DEBUG_IMAGE,
@@ -188,6 +190,11 @@ argp_parser (int key, char *arg, struct argp_state *state)
memdisk = xstrdup (arg);
return 0;
+ case OPTION_EMBED_CFG:
+ free (embed_cfg);
+ embed_cfg = xstrdup (arg);
+ return 0;
+
case OPTION_DISK_MODULE:
free (disk_module);
disk_module = xstrdup (arg);
@@ -264,6 +271,7 @@ static struct argp_option options[] = {
/* TRANSLATORS: "TARGET" as in "target platform". */
0, N_("install GRUB for TARGET platform [default=%s]; available targets:
%s"), 2},
{"memdisk", OPTION_MEMDISK, N_("FILE"), OPTION_HIDDEN, 0, 2},
+ {"embedded-config", OPTION_EMBED_CFG, N_("FILE"), OPTION_HIDDEN, 0, 2},
{"grub-setup", OPTION_SETUP, "FILE", OPTION_HIDDEN, 0, 2},
{"grub-mkrelpath", OPTION_MKRELPATH, "FILE", OPTION_HIDDEN, 0, 2},
{"grub-mkdevicemap", OPTION_MKDEVICEMAP, "FILE", OPTION_HIDDEN, 0, 2},
@@ -1586,7 +1594,17 @@ main (int argc, char *argv[])
grub_util_error ("%s", _("You've found a bug"));
if (load_cfg_f)
- fclose (load_cfg_f);
+ {
+ if (embed_cfg)
+ {
+ size_t size = grub_util_get_image_size(embed_cfg);
+ char *embed_cfg_data = grub_util_read_image(embed_cfg);
+ grub_util_write_image(embed_cfg_data, size, load_cfg_f, load_cfg);
+ free(embed_cfg_data);
+ }
+
+ fclose (load_cfg_f);
+ }
char *imgfile = grub_util_path_concat (2, platdir,
core_name);
--
1.8.3.2
- [PATCH 2/2] Add emdedded-config hidden option to grub-install.,
Glenn Washburn <=