Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
grub2.16182
grub2-commands-introduce-read_file-subcommand.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File grub2-commands-introduce-read_file-subcommand.patch of Package grub2.16182
From: Raymund Will <rw@suse.com> Subject: Introduce a 'read_file' sub-command. References: bsc#892852, bsc#891946 Patch-Mainline: not yet Needed to allow s390x-emu to be telecontrolled via LOADPARM. --- grub-core/commands/read.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) --- a/grub-core/commands/read.c +++ b/grub-core/commands/read.c @@ -20,6 +20,7 @@ #include <grub/dl.h> #include <grub/misc.h> #include <grub/mm.h> +#include <grub/normal.h> #include <grub/env.h> #include <grub/term.h> #include <grub/types.h> @@ -77,16 +78,49 @@ grub_cmd_read (grub_command_t cmd __attr return 0; } +static grub_err_t +grub_cmd_read_from_file (grub_command_t cmd __attribute__ ((unused)), int argc, char **args) +{ + char *line; + int i = 0; + grub_file_t file; + + if (argc < 1) + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("file name expected")); + if (argc < 2) + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("variable name expected")); + file = grub_file_open (args[i++]); + if (! file) + return grub_errno; + while ( i < argc ) + { + line = grub_file_getline (file); + if ( !line ) + break; + grub_env_set (args[i++], line); + grub_free (line); + } + grub_file_close (file); + if (i != argc) + return GRUB_ERR_OUT_OF_RANGE; + return 0; +} + static grub_command_t cmd; +static grub_command_t cme; GRUB_MOD_INIT(read) { cmd = grub_register_command ("read", grub_cmd_read, N_("[ENVVAR]"), N_("Set variable with user input.")); + cme = grub_register_command ("read_file", grub_cmd_read_from_file, + N_("FILE ENVVAR [...]"), + N_("Set variable(s) with line(s) from FILE.")); } GRUB_MOD_FINI(read) { grub_unregister_command (cmd); + grub_unregister_command (cme); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor