add parse-config.awk for -ng compatibility
authorFelix Fietkau <nbd@openwrt.org>
Sun, 8 Oct 2006 18:06:56 +0000 (18:06 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 8 Oct 2006 18:06:56 +0000 (18:06 +0000)
SVN-Revision: 4966

openwrt/package/base-files/default/usr/lib/parse-config.awk [new file with mode: 0644]

diff --git a/openwrt/package/base-files/default/usr/lib/parse-config.awk b/openwrt/package/base-files/default/usr/lib/parse-config.awk
new file mode 100644 (file)
index 0000000..cf1b09c
--- /dev/null
@@ -0,0 +1,42 @@
+# Copyright (C) 2006 OpenWrt.org
+
+{
+       line=$0
+       gsub(/^[ \t]*/, "")
+       gsub(/[ \t]*$/, "")
+}
+
+$1 == "@define" {
+       v[$2] = $3
+}
+
+$1 == "@ifdef" {
+       if_open = 1
+       if (v[$2] != "") noprint = 0
+       else noprint = 1
+}
+
+$1 == "@ifndef" {
+       if_open = 1
+       if (v[$2] != "") noprint = 1
+       else noprint = 0
+}
+
+$1 == "@else" {
+       if (noprint == 1) noprint = 0
+       else noprint = 1
+}
+
+($1 !~ /^@/) && (noprint != 1) {
+       n=split(line "@@", a, /@@/)
+       for (i=1; i<=n; i++) {
+               if ((i % 2) == 1) printf a[i]
+               else printf v[a[i]]
+       }
+       print ""
+}
+
+$1 == "@endif" {
+       if_open = 0
+       noprint = 0
+}