diff options
| author | Quentin Young <qlyoung@nvidia.com> | 2020-11-30 17:37:18 -0500 |
|---|---|---|
| committer | Quentin Young <qlyoung@nvidia.com> | 2020-12-01 18:37:14 -0500 |
| commit | e4e0229aba2b90d93bf681cc4e309c93f7cff61f (patch) | |
| tree | 3885492f543d13ae42dbe47b83fe3a5b38368027 /lib/frrscript.c | |
| parent | fa22080d22e1e4e69f7bed6d041083df1b85b4b7 (diff) | |
lib: add support for scripts directory
Specify default via --with-scriptdir at compile time, override default
with --scriptdir at runtime. If unspecified, it's {sysconfdir}/scripts
(usually /etc/frr/scripts)
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
Diffstat (limited to 'lib/frrscript.c')
| -rw-r--r-- | lib/frrscript.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/frrscript.c b/lib/frrscript.c index 6d03ca119f..7d28379194 100644 --- a/lib/frrscript.c +++ b/lib/frrscript.c @@ -64,6 +64,7 @@ struct frrscript_codec frrscript_codecs_lib[] = { /* Type codecs */ struct hash *codec_hash; +char scriptdir[MAXPATHLEN]; static unsigned int codec_hash_key(const void *data) { @@ -213,7 +214,7 @@ struct frrscript *frrscript_load(const char *name, frrlua_export_logging(fs->L); char fname[MAXPATHLEN]; - snprintf(fname, sizeof(fname), FRRSCRIPT_PATH "/%s.lua", fs->name); + snprintf(fname, sizeof(fname), "%s/%s.lua", scriptdir, fs->name); int ret = luaL_loadfile(fs->L, fname); @@ -262,11 +263,13 @@ void frrscript_unload(struct frrscript *fs) XFREE(MTYPE_SCRIPT, fs); } -void frrscript_init() +void frrscript_init(const char *sd) { codec_hash = hash_create(codec_hash_key, codec_hash_cmp, "Lua type encoders"); + strlcpy(scriptdir, sd, sizeof(scriptdir)); + /* Register core library types */ frrscript_register_type_codecs(frrscript_codecs_lib); } |
