diff options
| author | Quentin Young <qlyoung@nvidia.com> | 2020-11-28 21:51:42 -0500 |
|---|---|---|
| committer | Quentin Young <qlyoung@nvidia.com> | 2020-12-01 18:37:14 -0500 |
| commit | 3d19ffc5ef88022bc6be8daf052c4720b81b1bc7 (patch) | |
| tree | 64d9611037bee181ce3ba6bbf6fecba4f88413ea /lib | |
| parent | 5f98c815b6c75115963955a75d1dd2c047d589c9 (diff) | |
lib: add 'script <type> foo' test command
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/command.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/lib/command.c b/lib/command.c index 99f86ec680..56af946997 100644 --- a/lib/command.c +++ b/lib/command.c @@ -49,6 +49,8 @@ #include "northbound_cli.h" #include "network.h" +#include "frrscript.h" + DEFINE_MTYPE_STATIC(LIB, HOST, "Host config") DEFINE_MTYPE(LIB, COMPLETION, "Completion item") @@ -2286,10 +2288,18 @@ DEFUN(script, "Test command - execute a script\n" "Script name (same as filename in /etc/frr/scripts/\n") { - struct frrscript *fs = frrscript_load(argv[2]->arg, NULL); - int ret = frrscript_call(fs, 42); + struct prefix p; + str2prefix("1.2.3.4/24", &p); + + struct frrscript *fs = frrscript_load(argv[1]->arg, NULL); - vty_out(vty, "Script result: %d\n", ret); + if (fs == NULL) { + vty_out(vty, "Script '/etc/frr/scripts/%s.lua' not found\n", + argv[1]->arg); + } else { + int ret = frrscript_call(fs, FRRSCRIPT_ARGS("cool", "prefix", &p), FRRSCRIPT_RESULTS()); + vty_out(vty, "Script result: %d\n", ret); + } return CMD_SUCCESS; } @@ -2389,6 +2399,10 @@ void cmd_init(int terminal) install_element(VIEW_NODE, &echo_cmd); install_element(VIEW_NODE, &autocomplete_cmd); install_element(VIEW_NODE, &find_cmd); +#ifdef DEV_BUILD + install_element(VIEW_NODE, &script_cmd); +#endif + install_element(ENABLE_NODE, &config_end_cmd); install_element(ENABLE_NODE, &config_disable_cmd); |
