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); }
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; }