static int GenerateAvahiConfig(const char *path) { FILE *fout; Writer *writer = NULL; fout = safe_fopen(path, "w+"); if (fout == NULL) { Log(LOG_LEVEL_ERR, "Unable to open '%s'", path); return -1; } writer = FileWriter(fout); fprintf(fout, "<?xml version=\"1.0\" standalone='no'?>\n"); fprintf(fout, "<!DOCTYPE service-group SYSTEM \"avahi-service.dtd\">\n"); XmlComment(writer, "This file has been automatically generated by cf-serverd."); XmlStartTag(writer, "service-group", 0); FprintAvahiCfengineTag(fout); XmlStartTag(writer, "service", 0); XmlTag(writer, "type", "_cfenginehub._tcp",0); DetermineCfenginePort(); XmlStartTag(writer, "port", 0); WriterWriteF(writer, "%d", CFENGINE_PORT); XmlEndTag(writer, "port"); XmlEndTag(writer, "service"); XmlEndTag(writer, "service-group"); fclose(fout); return 0; }
void test_comment(void **state) { Writer *w = StringWriter(); XmlComment(w, "foobar"); assert_string_equal(StringWriterClose(w), "<!-- foobar -->\n"); }
static int GenerateAvahiConfig(const char *path) { FILE *fout; Writer *writer = NULL; fout = fopen(path, "w+"); if (fout == NULL) { CfOut(cf_error, "", "Unable to open %s", path); return -1; } writer = FileWriter(fout); fprintf(fout, "<?xml version=\"1.0\" standalone='no'?>\n"); fprintf(fout, "<!DOCTYPE service-group SYSTEM \"avahi-service.dtd\">\n"); XmlComment(writer, "This file has been automatically generated by cf-serverd."); XmlStartTag(writer, "service-group", 0); #ifdef HAVE_NOVA fprintf(fout,"<name replace-wildcards=\"yes\" >CFEngine Enterprise %s Policy Hub on %s </name>\n", Version(), "%h"); #else fprintf(fout,"<name replace-wildcards=\"yes\" >CFEngine Community %s Policy Server on %s </name>\n", Version(), "%h"); #endif XmlStartTag(writer, "service", 0); XmlTag(writer, "type", "_cfenginehub._tcp",0); DetermineCfenginePort(); XmlTag(writer, "port", STR_CFENGINEPORT, 0); XmlEndTag(writer, "service"); XmlEndTag(writer, "service-group"); fclose(fout); return 0; }
void XmlManual(const char *mandir, FILE *fout) { Writer *writer = NULL; int i; SubTypeSyntax *st = NULL; MANUAL_DIRECTORY = (char *) mandir; AddSlash(MANUAL_DIRECTORY); writer = FileWriter(fout); /* XML HEADER */ XmlComment(writer, "AUTOGENERATED SYNTAX DOCUMENTATION BY CF-KNOW"); WriterWrite(writer, "\n"); /* START XML ELEMENT -- SYNTAX-DOCUMENTATION */ XmlStartTag(writer, XMLTAG_DOC_ROOT, 0); /* SPECIAL VARIABLES */ XmlStartTag(writer, XMLTAG_VARSCOPES_ROOT, 0); XmlExportVariables(writer, "const"); XmlExportVariables(writer, "edit"); XmlExportVariables(writer, "match"); XmlExportVariables(writer, "mon"); XmlExportVariables(writer, "sys"); XmlExportVariables(writer, "this"); XmlEndTag(writer, XMLTAG_VARSCOPES_ROOT); /* SPECIAL FUNCTIONS */ XmlStartTag(writer, XMLTAG_FUNCTIONS_ROOT, 0); for (i = 0; CF_FNCALL_TYPES[i].name != NULL; i++) { XmlExportFunction(writer, CF_FNCALL_TYPES[i]); } XmlEndTag(writer, XMLTAG_FUNCTIONS_ROOT); /* CONTROL */ XmlStartTag(writer, XMLTAG_CONTROLS_ROOT, 0); for (i = 0; CF_ALL_BODIES[i].btype != NULL; i++) { XmlExportControl(writer, CF_ALL_BODIES[i]); } XmlEndTag(writer, XMLTAG_CONTROLS_ROOT); /* PROMISE TYPES */ XmlStartTag(writer, XMLTAG_PROMISETYPES_ROOT, 0); for (i = 0; i < CF3_MODULES; i++) { st = CF_ALL_SUBTYPES[i]; XmlExportPromiseType(writer, st); } XmlEndTag(writer, XMLTAG_PROMISETYPES_ROOT); /* END XML ELEMENT -- SYNTAX-DOCUMENTATION */ XmlEndTag(writer, XMLTAG_DOC_ROOT); WriterClose(writer); }