int main(int argc, char *argv[])
{
	int rc = 0;
	log_options_t opts = LOG_OPTS_STDERR_ONLY;
	log_init("strigger", opts, SYSLOG_FACILITY_DAEMON, NULL);

	slurm_conf_init(NULL);
	parse_command_line(argc, argv);
	if (params.verbose) {
		opts.stderr_level += params.verbose;
		log_alter(opts, SYSLOG_FACILITY_DAEMON, NULL);
	}

	if      (params.mode_set)
		rc = _set_trigger();
	else if (params.mode_get)
		rc = _get_trigger();
	else if (params.mode_clear)
		rc = _clear_trigger();
	else {
		error("Invalid mode");
		rc = 1;
	}

	exit(rc);
}
Beispiel #2
0
static int
_add_script(lua_State *L)
{
    int si;
    char *string;

    if(! lua_istable(L, 1) ) {
        luaL_error(L, "Table needed to add script");
    }

    si = _get_new_script();

    if(si < 0) {
        /* Just bail for now */
        return 0;
    }

    lua_getfield(L, 1, "enable");
    if( lua_isnil(L, -1)) {
        scripts[si].enable = 1;
    } else {
        scripts[si].enable = lua_toboolean(L, -1);
    }
    lua_pop(L, 1);

    lua_getfield(L, 1, "trigger");
    if(lua_istable(L, -1)) {
        _set_trigger(L, &scripts[si]);
    } else {
        scripts[si].trigger = 0;
    }
    lua_pop(L, 1);

    lua_getfield(L, 1, "name");
    string = (char *)lua_tostring(L, -1);
    fprintf(stderr, "We got a script name of %s\n", string);
    if(string) {
        /* check for duplicate name */
        if(get_script_name(string)) {
            scriptcount--; /* This effectively deletes the script */
            luaL_error(L, "duplicate script name %s", string);
        }
        scripts[si].name = strdup(string);
    } else {
        luaL_error(L, "name is required for a script");
        scripts[si].name = NULL;
    }
    lua_pop(L, 1);

    lua_getfield(L, 1, "filename");
    string = (char *)lua_tostring(L, -1);
    if(string) {
        scripts[si].filename = strdup(string);
    } else {
        scripts[si].filename = NULL;
        scripts[si].enable = 0;
    }
    lua_pop(L, 1);

    lua_getfield(L, 1, "rate");
    scripts[si].rate = lua_tointeger(L, -1);
    if(scripts[si].rate <= 0) {
        scripts[si].rate = DEFAULT_RATE;
    }
    lua_pop(L, 1);

    return 0;
}