vty: Optionally Set/replace cfg file during cmd 'write file'

This way if the process is started with no file associated (eg. no -c
param and default cfg path doesn't exist), config can be later saved
into a file by passing the parameter. Otherwise, until now this message
was displayed:
Can't save to configuration file, using vtysh.

Related: OS#4024
Change-Id: I38edcf902a08b6bd0ebb9aa6fc1a7041421af525
This commit is contained in:
Pau Espin 2019-09-26 19:30:47 +02:00 committed by laforge
parent 9168cc9830
commit eda8b7b23d
1 changed files with 6 additions and 2 deletions

View File

@ -2927,9 +2927,10 @@ static int write_config_file(const char *config_file, char **outpath)
/* Write current configuration into file. */ /* Write current configuration into file. */
DEFUN(config_write_file, DEFUN(config_write_file,
config_write_file_cmd, config_write_file_cmd,
"write file", "write file [PATH]",
"Write running configuration to memory, network, or terminal\n" "Write running configuration to memory, network, or terminal\n"
"Write to configuration file\n") "Write to configuration file\n"
"Set file path to store the config, or replace if already exists\n")
{ {
char *failed_file; char *failed_file;
int rc; int rc;
@ -2943,6 +2944,9 @@ DEFUN(config_write_file,
} }
} }
if (argc == 1)
host_config_set(argv[0]);
if (host.config == NULL) { if (host.config == NULL) {
vty_out(vty, "Can't save to configuration file, using vtysh.%s", vty_out(vty, "Can't save to configuration file, using vtysh.%s",
VTY_NEWLINE); VTY_NEWLINE);