static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_keygen); while ((c = getopt_long(argc, argv, "dvf:VMsr:hl:", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': snprintf(CFPRIVKEYFILE, CF_BUFSIZE, "%s.priv", optarg); snprintf(CFPUBKEYFILE, CF_BUFSIZE, "%s.pub", optarg); break; case 'd': DEBUG = true; break; case 'V': PrintVersionBanner("cf-key"); exit(0); case 'v': VERBOSE = true; break; case 's': SHOWHOSTS = true; break; case 'r': REMOVEKEYS = true; remove_keys_host = optarg; break; case 'l': LICENSE_INSTALL = true; strlcpy(LICENSE_SOURCE, optarg, sizeof(LICENSE_SOURCE)); break; case 'h': Syntax("cf-key - CFEngine's key generator", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-key - CFEngine's key generator", OPTIONS, HINTS, ID); exit(0); default: Syntax("cf-key - CFEngine's key generator", OPTIONS, HINTS, ID); exit(1); } } return config; }
static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(AGENT_TYPE_GENDOC); getcwd(SOURCE_DIR, CF_BUFSIZE); snprintf(OUTPUT_FILE, CF_BUFSIZE, "%scf3-Reference.texinfo", SOURCE_DIR); while ((c = getopt_long(argc, argv, "hxi:o:", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'h': Syntax("cf-gendoc - reference manual generator", OPTIONS, HINTS, ID); exit(0); case 'x': GENERATE_XML = true; break; case 'i': strlcpy(SOURCE_DIR, optarg, CF_BUFSIZE); case 'o': strlcpy(OUTPUT_FILE, optarg, CF_BUFSIZE); break; default: Syntax("cf-gendoc - reference manual generator", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } return config; }
GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_common); while ((c = getopt_long(argc, argv, "advnIf:D:N:VSrxMb:pg:h", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': NewClass("opt_debug"); DEBUG = true; break; case 'b': if (optarg) { config.bundlesequence = SplitStringAsRList(optarg, ','); CBUNDLESEQUENCE_STR = optarg; } break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; LOOKUP = true; NewClass("opt_dry_run"); break; case 'V': PrintVersionBanner("cf-promises"); exit(0); case 'h': Syntax("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(0); case 'r': PrependRScalar(&GOALS, "goal.*", CF_SCALAR); SHOWREPORTS = true; break; case 'x': SelfDiagnostic(); exit(0); case 'a': printf("Self-analysis is not yet implemented.\n"); exit(0); break; /* case 'p': SHOW_PARSE_TREE = true; break; */ case 'g': USE_GCC_BRIEF_FORMAT = true; break; default: Syntax("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } CfDebug("Set debugging\n"); return config; }
static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(AGENT_TYPE_RUNAGENT); DEFINECLASSES[0] = '\0'; SENDCLASSES[0] = '\0'; while ((c = getopt_long(argc, argv, "t:q:db:vnKhIif:D:VSxo:s:MH:", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': SetInputFile(optarg); MINUSF = true; break; case 'b': BACKGROUND = true; if (optarg) { MAXCHILD = atoi(optarg); } break; case 'd': HardClass("opt_debug"); DEBUG = true; break; case 'q': if (optarg == NULL) { strcpy(MENU, "delta"); } else { strncpy(MENU, optarg, CF_MAXVARSIZE); } break; case 'K': IGNORELOCK = true; break; case 's': strncpy(SENDCLASSES, optarg, CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { FatalError("Argument too long\n"); } break; case 'D': strncpy(DEFINECLASSES, optarg, CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { FatalError("Argument too long\n"); } break; case 'H': HOSTLIST = SplitStringAsRList(optarg, ','); break; case 'o': strncpy(REMOTE_AGENT_OPTIONS, optarg, CF_MAXVARSIZE); break; case 'I': INFORM = true; break; case 'i': INTERACTIVE = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; HardClass("opt_dry_run"); break; case 't': CONNTIMEOUT = atoi(optarg); break; case 'V': PrintVersionBanner("cf-runagent"); exit(0); case 'h': Syntax("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(1); } } CfDebug("Set debugging\n"); return config; }
GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; char ld_library_path[CF_BUFSIZE]; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_server); while ((c = getopt_long(argc, argv, "dvIKf:D:N:VSxLFMh", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && (strlen(optarg) < 5)) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': DEBUG = true; NO_FORK = true; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'L': CfOut(cf_verbose, "", "Setting LD_LIBRARY_PATH=%s\n", optarg); snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); putenv(ld_library_path); break; case 'V': PrintVersionBanner("cf-serverd"); exit(0); case 'h': Syntax("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); FatalError("Aborted"); } CfDebug("Set debugging\n"); return config; }
int main(int argc, char *argv[]) { GenericAgentConfig config = CheckOpts(argc, argv); ReportContext *report_context = OpenReports("executor"); Policy *policy = GenericInitialize("executor", config, report_context); ThisAgentInit(); ExecConfig exec_config = { .scheduled_run = !ONCE, .exec_command = SafeStringDuplicate(""), .mail_server = SafeStringDuplicate(""), .mail_from_address = SafeStringDuplicate(""), .mail_to_address = SafeStringDuplicate(""), .mail_max_lines = 30, .fq_name = VFQNAME, .ip_address = VIPADDRESS, .agent_expireafter = 10080, }; KeepPromises(policy, &exec_config); #ifdef MINGW if (WINSERVICE) { NovaWin_StartExecService(); } else #endif /* MINGW */ { StartServer(policy, &exec_config, report_context); } ReportContextDestroy(report_context); return 0; } /*****************************************************************************/ /* Level 1 */ /*****************************************************************************/ static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; char ld_library_path[CF_BUFSIZE]; GenericAgentConfig config = GenericAgentDefaultConfig(AGENT_TYPE_EXECUTOR); while ((c = getopt_long(argc, argv, "dvnKIf:D:N:VxL:hFOV1gMW", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': HardClass("opt_debug"); DEBUG = true; break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'n': DONTDO = true; IGNORELOCK = true; HardClass("opt_dry_run"); break; case 'L': snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); if (putenv(xstrdup(ld_library_path)) != 0) { } break; case 'W': WINSERVICE = false; break; case 'F': NO_FORK = true; break; case 'O': ONCE = true; break; case 'V': PrintVersionBanner("cf-execd"); exit(0); case 'h': Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } return config; } /*****************************************************************************/ static void LoadDefaultSchedule(void) { CfDebug("Loading default schedule...\n"); DeleteItemList(SCHEDULE); SCHEDULE = NULL; AppendItem(&SCHEDULE, "Min00", NULL); AppendItem(&SCHEDULE, "Min05", NULL); AppendItem(&SCHEDULE, "Min10", NULL); AppendItem(&SCHEDULE, "Min15", NULL); AppendItem(&SCHEDULE, "Min20", NULL); AppendItem(&SCHEDULE, "Min25", NULL); AppendItem(&SCHEDULE, "Min30", NULL); AppendItem(&SCHEDULE, "Min35", NULL); AppendItem(&SCHEDULE, "Min40", NULL); AppendItem(&SCHEDULE, "Min45", NULL); AppendItem(&SCHEDULE, "Min50", NULL); AppendItem(&SCHEDULE, "Min55", NULL); }
static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_monitor); while ((c = getopt_long(argc, argv, "dvnIf:VSxHTKMFh", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': SetInputFile(optarg); MINUSF = true; break; case 'd': HardClass("opt_debug"); DEBUG = true; NO_FORK = true; break; case 'K': IGNORELOCK = true; break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'H': /* Keep accepting this option for compatibility -- no longer used */ break; case 'T': MonNetworkSnifferEnable(true); break; case 'V': PrintVersionBanner("cf-monitord"); exit(0); case 'h': Syntax("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(1); } } CfDebug("Set debugging\n"); return config; }
static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_know); LOOKUP = false; while ((c = getopt_long(argc, argv, "Ihbd:vVf:mxMz:St:ruT", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': DEBUG = true; break; case 'I': INFORM = true; break; case 'z': if (optarg) { strncpy(STORY,optarg,CF_BUFSIZE-1); } break; case 'b': WRITE_KMDB = true; break; case 'v': VERBOSE = true; break; case 'V': PrintVersionBanner("cf-know"); exit(0); case 'h': Syntax("cf-know - cfengine's knowledge agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-know - cfengine's knowledge agent", OPTIONS, HINTS, ID); exit(0); case 'H': HTML = 1; break; case 'S': if (optarg) { SyntaxCompletion(optarg); exit(0); } break; case 'm': GENERATE_MANUAL = true; break; case 'x': GENERATE_XML = true; break; case 'o': OUTPUT_FILE = optarg; break; case 't': if (atoi(optarg)) { CfGenerateTestData(atoi(optarg)); exit(0); } break; case 'r': CfRemoveTestData(); exit(0); case 'u': CfUpdateTestData(); exit(0); case 'T': WORDS = true; break; default: Syntax("cf-know - knowledge agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } return config; }