[icinga-checkins] icinga.org: icinga2/master: Add mkembedconfig tool.

git at icinga.org git at icinga.org
Tue Mar 12 14:48:43 CET 2013


Module: icinga2
Branch: master
Commit: ba71eba41007eb39ec0df427b09e27f3ce64e1c3
URL:    https://git.icinga.org/?p=icinga2.git;a=commit;h=ba71eba41007eb39ec0df427b09e27f3ce64e1c3

Author: Gunnar Beutner <gunnar.beutner at netways.de>
Date:   Tue Mar 12 14:48:34 2013 +0100

Add mkembedconfig tool.

---

 tools/Makefile.am     |    7 ++++
 tools/mkembedconfig.c |   74 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644
index 0000000..fa5024c
--- /dev/null
+++ b/tools/Makefile.am
@@ -0,0 +1,7 @@
+## Process this file with automake to produce Makefile.in
+
+noinst_PROGRAMS = \
+	mkembedconfig
+
+mkembedconfig_SOURCES = \
+	mkembedconfig.c
diff --git a/tools/mkembedconfig.c b/tools/mkembedconfig.c
new file mode 100644
index 0000000..041131f
--- /dev/null
+++ b/tools/mkembedconfig.c
@@ -0,0 +1,74 @@
+/******************************************************************************
+ * Icinga 2                                                                   *
+ * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/)        *
+ *                                                                            *
+ * This program is free software; you can redistribute it and/or              *
+ * modify it under the terms of the GNU General Public License                *
+ * as published by the Free Software Foundation; either version 2             *
+ * of the License, or (at your option) any later version.                     *
+ *                                                                            *
+ * This program is distributed in the hope that it will be useful,            *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
+ * GNU General Public License for more details.                               *
+ *                                                                            *
+ * You should have received a copy of the GNU General Public License          *
+ * along with this program; if not, write to the Free Software Foundation     *
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
+ ******************************************************************************/
+
+#include <stdlib.h>
+#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+	int cols;
+	FILE *infp, *outfp;
+
+	if (argc < 3) {
+		fprintf(stderr, "Syntax: %s <in-file> <out-file>\n", argv[0]);
+		return EXIT_FAILURE;
+	}
+
+	infp = fopen(argv[1], "r");
+
+	if (!infp) {
+		perror("fopen");
+		return EXIT_FAILURE;
+	}
+
+	outfp = fopen(argv[2], "w");
+
+	if (!outfp) {
+		perror("fopen");
+		return EXIT_FAILURE;
+	}
+
+	fprintf(outfp, "/* This file has been automatically generated\n"
+	    "   from the input file \"%s\". */\n\n", argv[1]);
+	fputs("#include <i2-config.h>\n\nstatic const char g_ConfigFragment[] = {\n", outfp);
+	fputc('\t', outfp);
+
+	cols = 0;
+	for (;;) {
+		int c = fgetc(infp);
+
+		if (c == EOF)
+			break;
+
+		if (cols > 16) {
+			fputs("\n\t", outfp);
+			cols = 0;
+		}
+
+		fprintf(outfp, "%d, ", c);
+		cols++;
+	}
+
+	fprintf(outfp, "0\n};\n\nREGISTER_CONFIG_FRAGMENT(\"%s\", g_ConfigFragment);\n", argv[1]);
+
+	fclose(outfp);
+	fclose(infp);
+
+	return EXIT_SUCCESS;
+}





More information about the icinga-checkins mailing list