int weechat_ruby_signal_script_action_cb (void *data, const char *signal, const char *type_data, void *signal_data) { /* make C compiler happy */ (void) data; if (strcmp (type_data, WEECHAT_HOOK_SIGNAL_STRING) == 0) { if (strcmp (signal, "ruby_script_install") == 0) { script_action_add (&ruby_action_install_list, (const char *)signal_data); weechat_hook_timer (1, 0, 1, &weechat_ruby_timer_action_cb, &ruby_action_install_list); } else if (strcmp (signal, "ruby_script_remove") == 0) { script_action_add (&ruby_action_remove_list, (const char *)signal_data); weechat_hook_timer (1, 0, 1, &weechat_ruby_timer_action_cb, &ruby_action_remove_list); } } return WEECHAT_RC_OK; }
void script_action_schedule (const char *action, int need_repository, int quiet) { script_action_add (action); /* create again "script" directory, just in case it has been removed */ dogechat_mkdir_home (SCRIPT_PLUGIN_NAME, 0755); if (need_repository) { if (script_repo_file_is_uptodate ()) { if (!scripts_repo) script_repo_file_read (quiet); script_action_run (); } else script_repo_file_update (quiet); } else script_action_run (); }