mirror of
https://github.com/tio/tio.git
synced 2026-05-01 14:57:59 +02:00
Add script-init-file option
The script-init-file is the file to be loaded and executed when the interpreter starts. If this option is defined, it will be executed after the tio module is loaded as a built-in module. Example of .tioconfig: script-init-file = /home/user/.tio-script-init.lua Example of option specification: tio --script-init-file /home/user/.tio-script-init.lua
This commit is contained in:
parent
c009ed755c
commit
b7ccd28300
4 changed files with 21 additions and 0 deletions
|
|
@ -294,6 +294,7 @@ static void config_parse_keys(GKeyFile *key_file, char *group)
|
|||
string = NULL;
|
||||
}
|
||||
config_get_bool(key_file, group, "mute", &option.mute);
|
||||
config_get_string(key_file, group, "script-init-file", &option.script_init_filename, NULL);
|
||||
config_get_string(key_file, group, "script", &option.script, NULL);
|
||||
config_get_string(key_file, group, "script-file", &option.script_filename, NULL);
|
||||
config_get_string(key_file, group, "script-run", &string, NULL);
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ enum opt_t
|
|||
OPT_ALERT,
|
||||
OPT_COMPLETE_PROFILES,
|
||||
OPT_MUTE,
|
||||
OPT_SCRIPT_INIT_FILE,
|
||||
OPT_SCRIPT,
|
||||
OPT_SCRIPT_FILE,
|
||||
OPT_SCRIPT_RUN,
|
||||
|
|
@ -107,6 +108,7 @@ struct option_t option =
|
|||
.rs485_delay_rts_after_send = -1,
|
||||
.alert = ALERT_NONE,
|
||||
.complete_profiles = false,
|
||||
.script_init_filename = NULL,
|
||||
.script = NULL,
|
||||
.script_filename = NULL,
|
||||
.script_run = SCRIPT_RUN_ALWAYS,
|
||||
|
|
@ -933,6 +935,10 @@ void options_print()
|
|||
{
|
||||
tio_printf(" Socket: %s", option.socket);
|
||||
}
|
||||
if (option.script_init_filename != NULL)
|
||||
{
|
||||
tio_printf(" Script init file: %s", option.script_init_filename);
|
||||
}
|
||||
if (option.script_filename != NULL)
|
||||
{
|
||||
tio_printf(" Script file: %s", option.script_filename);
|
||||
|
|
@ -1005,6 +1011,7 @@ void options_parse(int argc, char *argv[])
|
|||
{"rs-485-config", required_argument, 0, OPT_RS485_CONFIG },
|
||||
{"alert", required_argument, 0, OPT_ALERT },
|
||||
{"mute", no_argument, 0, OPT_MUTE },
|
||||
{"script-init-file", required_argument, 0, OPT_SCRIPT_INIT_FILE },
|
||||
{"script", required_argument, 0, OPT_SCRIPT },
|
||||
{"script-file", required_argument, 0, OPT_SCRIPT_FILE },
|
||||
{"script-run", required_argument, 0, OPT_SCRIPT_RUN },
|
||||
|
|
@ -1179,6 +1186,10 @@ void options_parse(int argc, char *argv[])
|
|||
option.mute = true;
|
||||
break;
|
||||
|
||||
case OPT_SCRIPT_INIT_FILE:
|
||||
option.script_init_filename = optarg;
|
||||
break;
|
||||
|
||||
case OPT_SCRIPT:
|
||||
option.script = optarg;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ struct option_t
|
|||
int32_t rs485_delay_rts_after_send;
|
||||
alert_t alert;
|
||||
bool complete_profiles;
|
||||
char *script_init_filename;
|
||||
char *script;
|
||||
char *script_filename;
|
||||
script_run_t script_run;
|
||||
|
|
|
|||
|
|
@ -636,6 +636,14 @@ static lua_State *script_interp_new(void)
|
|||
// Initialize globals
|
||||
script_set_globals(L);
|
||||
|
||||
// Execute script-init file
|
||||
if (option.script_init_filename) {
|
||||
if (luaL_dofile(L, option.script_init_filename)) {
|
||||
tio_warning_printf("lua: %s", lua_tostring(L, -1));
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return L;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue