1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

Add a '-autorun' switch to /script reset

This way we reload all the scripts in the autorun folder.
This commit is contained in:
LemonBoy 2016-09-11 16:59:21 +02:00
parent e4f8abc973
commit b2424f3193
3 changed files with 16 additions and 1 deletions

View File

@ -393,7 +393,7 @@ int perl_get_api_version(void)
return IRSSI_PERL_API_VERSION; return IRSSI_PERL_API_VERSION;
} }
static void perl_scripts_autorun(void) void perl_scripts_autorun(void)
{ {
DIR *dirp; DIR *dirp;
struct dirent *dp; struct dirent *dp;

View File

@ -16,6 +16,8 @@ extern GSList *perl_scripts;
void perl_scripts_init(void); void perl_scripts_init(void);
/* Destroy all perl scripts and deinitialize perl interpreter */ /* Destroy all perl scripts and deinitialize perl interpreter */
void perl_scripts_deinit(void); void perl_scripts_deinit(void);
/* Load all the scripts in the autorun/ folder */
void perl_scripts_autorun(void);
/* Load a perl script, path must be a full path. */ /* Load a perl script, path must be a full path. */
PERL_SCRIPT_REC *perl_script_load_file(const char *path); PERL_SCRIPT_REC *perl_script_load_file(const char *path);

View File

@ -119,8 +119,20 @@ static void cmd_script_unload(const char *data)
static void cmd_script_reset(const char *data) static void cmd_script_reset(const char *data)
{ {
void *free_arg;
GHashTable *optlist;
if (!cmd_get_params(data, &free_arg, 0 | PARAM_FLAG_OPTIONS,
"script reset", &optlist))
return;
perl_scripts_deinit(); perl_scripts_deinit();
perl_scripts_init(); perl_scripts_init();
if (g_hash_table_lookup(optlist, "autorun") != NULL)
perl_scripts_autorun();
cmd_params_free(free_arg);
} }
static void cmd_script_list(void) static void cmd_script_list(void)
@ -251,6 +263,7 @@ void fe_perl_init(void)
command_bind("script list", NULL, (SIGNAL_FUNC) cmd_script_list); command_bind("script list", NULL, (SIGNAL_FUNC) cmd_script_list);
command_bind("load", NULL, (SIGNAL_FUNC) cmd_load); command_bind("load", NULL, (SIGNAL_FUNC) cmd_load);
command_set_options("script exec", "permanent"); command_set_options("script exec", "permanent");
command_set_options("script reset", "autorun");
signal_add("script error", (SIGNAL_FUNC) sig_script_error); signal_add("script error", (SIGNAL_FUNC) sig_script_error);
signal_add("complete command script load", (SIGNAL_FUNC) sig_complete_load); signal_add("complete command script load", (SIGNAL_FUNC) sig_complete_load);