* util/grub-install.c: List available targets.
This commit is contained in:
parent
d08059309f
commit
95cd131ea0
4 changed files with 44 additions and 2 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2014-01-24 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* util/grub-install.c: List available targets.
|
||||||
|
|
||||||
2014-01-23 Colin Watson <cjwatson@ubuntu.com>
|
2014-01-23 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
* util/grub-install.c (write_to_disk): Add an info message.
|
* util/grub-install.c (write_to_disk): Add an info message.
|
||||||
|
|
|
@ -138,6 +138,8 @@ grub_install_get_platform_cpu (enum grub_install_plat platid);
|
||||||
const char *
|
const char *
|
||||||
grub_install_get_platform_platform (enum grub_install_plat platid);
|
grub_install_get_platform_platform (enum grub_install_plat platid);
|
||||||
|
|
||||||
|
char *
|
||||||
|
grub_install_get_platforms_string (void);
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GRUB_COMPRESSION_AUTO,
|
GRUB_COMPRESSION_AUTO,
|
||||||
|
|
|
@ -667,6 +667,36 @@ static struct
|
||||||
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
|
[GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char *
|
||||||
|
grub_install_get_platforms_string (void)
|
||||||
|
{
|
||||||
|
char **arr = xmalloc (sizeof (char *) * ARRAY_SIZE (platforms));
|
||||||
|
int platform_strins_len = 0;
|
||||||
|
char *platforms_string;
|
||||||
|
char *ptr;
|
||||||
|
unsigned i;
|
||||||
|
for (i = 0; i < ARRAY_SIZE (platforms); i++)
|
||||||
|
{
|
||||||
|
arr[i] = xasprintf ("%s-%s", platforms[i].cpu,
|
||||||
|
platforms[i].platform);
|
||||||
|
platform_strins_len += strlen (arr[i]) + 2;
|
||||||
|
}
|
||||||
|
ptr = platforms_string = xmalloc (platform_strins_len);
|
||||||
|
qsort (arr, ARRAY_SIZE (platforms), sizeof (char *), grub_qsort_strcmp);
|
||||||
|
for (i = 0; i < ARRAY_SIZE (platforms); i++)
|
||||||
|
{
|
||||||
|
strcpy (ptr, arr[i]);
|
||||||
|
ptr += strlen (arr[i]);
|
||||||
|
*ptr++ = ',';
|
||||||
|
*ptr++ = ' ';
|
||||||
|
free (arr[i]);
|
||||||
|
}
|
||||||
|
ptr[-2] = 0;
|
||||||
|
free (arr);
|
||||||
|
|
||||||
|
return platforms_string;
|
||||||
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
grub_install_get_platform_name (enum grub_install_plat platid)
|
grub_install_get_platform_name (enum grub_install_plat platid)
|
||||||
{
|
{
|
||||||
|
|
|
@ -256,7 +256,7 @@ static struct argp_option options[] = {
|
||||||
OPTION_HIDDEN, 0, 2},
|
OPTION_HIDDEN, 0, 2},
|
||||||
{"target", OPTION_TARGET, N_("TARGET"),
|
{"target", OPTION_TARGET, N_("TARGET"),
|
||||||
/* TRANSLATORS: "TARGET" as in "target platform". */
|
/* TRANSLATORS: "TARGET" as in "target platform". */
|
||||||
0, N_("install GRUB for TARGET platform [default=%s]"), 2},
|
0, N_("install GRUB for TARGET platform [default=%s]; available targets: %s"), 2},
|
||||||
{"grub-setup", OPTION_SETUP, "FILE", OPTION_HIDDEN, 0, 2},
|
{"grub-setup", OPTION_SETUP, "FILE", OPTION_HIDDEN, 0, 2},
|
||||||
{"grub-mkrelpath", OPTION_MKRELPATH, "FILE", OPTION_HIDDEN, 0, 2},
|
{"grub-mkrelpath", OPTION_MKRELPATH, "FILE", OPTION_HIDDEN, 0, 2},
|
||||||
{"grub-mkdevicemap", OPTION_MKDEVICEMAP, "FILE", OPTION_HIDDEN, 0, 2},
|
{"grub-mkdevicemap", OPTION_MKDEVICEMAP, "FILE", OPTION_HIDDEN, 0, 2},
|
||||||
|
@ -340,7 +340,13 @@ help_filter (int key, const char *text, void *input __attribute__ ((unused)))
|
||||||
case OPTION_BOOT_DIRECTORY:
|
case OPTION_BOOT_DIRECTORY:
|
||||||
return xasprintf (text, GRUB_DIR_NAME, GRUB_BOOT_DIR_NAME "/" GRUB_DIR_NAME);
|
return xasprintf (text, GRUB_DIR_NAME, GRUB_BOOT_DIR_NAME "/" GRUB_DIR_NAME);
|
||||||
case OPTION_TARGET:
|
case OPTION_TARGET:
|
||||||
return xasprintf (text, get_default_platform ());
|
{
|
||||||
|
char *plats = grub_install_get_platforms_string ();
|
||||||
|
char *ret;
|
||||||
|
ret = xasprintf (text, get_default_platform (), plats);
|
||||||
|
free (plats);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
case ARGP_KEY_HELP_POST_DOC:
|
case ARGP_KEY_HELP_POST_DOC:
|
||||||
return xasprintf (text, program_name, GRUB_BOOT_DIR_NAME "/" GRUB_DIR_NAME);
|
return xasprintf (text, program_name, GRUB_BOOT_DIR_NAME "/" GRUB_DIR_NAME);
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue