示例#1
0
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;
}
示例#2
0
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 ();
}