]>
cloudbase.mooo.com Git - z180-stamp.git/blob - avr/cmd_run.c
2 * (C) Copyright 2016 Leo C. <erbl259-lmu@yahoo.de>
4 * SPDX-License-Identifier: GPL-2.0
14 #include "cli_readline.h" /* console_buffer[] */
15 #include "cli.h" /* run_command() */
19 command_ret_t
do_run(cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
27 for (i
= 1; i
< argc
; ++i
) {
30 arg
= getenv_str(argv
[i
]);
32 printf_P(PSTR("run: \"%s\" is not set\n"), argv
[i
]);
33 return CMD_RET_FAILURE
;
36 if (run_command(arg
, flag
) != 0)
37 return CMD_RET_FAILURE
;
39 return CMD_RET_SUCCESS
;
42 static int source(FIL
*fp
, int flag
, int argc
, char * const argv
[])
47 (void)argc
; (void)argv
;
49 while (!f_eof(fp
) && !f_error(fp
) && !res
) {
51 if (f_gets(console_buffer
, CONFIG_SYS_CBSIZE
, fp
)) {
52 int i
= strlen(console_buffer
) - 1;
55 if (console_buffer
[i
] != '\n') {
56 printf_P(PSTR("Error: line %d to long\n"), lineno
);
61 console_buffer
[i
] = 0;
62 res
= run_command(console_buffer
, flag
);
66 return !f_eof(fp
) || res
;
69 command_ret_t
do_source(cmd_tbl_t
*cmdtp
, int flag
, int argc
, char * const argv
[])
79 res
= f_open(&File
, argv
[1], FA_READ
);
81 printf_P(PSTR("Error: failed to open script '%s'\n"), argv
[1]);
82 return CMD_RET_FAILURE
;
85 printf_P(PSTR("Executing script: '%s'...\n"), argv
[1]);
86 res
= source(&File
, flag
, --argc
, ++argv
);
89 return CMD_RET_FAILURE
;
91 return CMD_RET_SUCCESS
;