summaryrefslogtreecommitdiff
path: root/openwrt/package/base-files/default/usr/lib/parse-config.awk
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-04-05 02:09:22 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-04-05 02:09:22 +0000
commitee27e41337497f69d27cd689fe19ba2c89e95f79 (patch)
tree302d5239acd2ed8e10f5310599a381bb22f193e0 /openwrt/package/base-files/default/usr/lib/parse-config.awk
parente4b534024d6dc903ef48628dda1203d0d7c5bfcb (diff)
downloadmtk-20170518-ee27e41337497f69d27cd689fe19ba2c89e95f79.zip
mtk-20170518-ee27e41337497f69d27cd689fe19ba2c89e95f79.tar.gz
mtk-20170518-ee27e41337497f69d27cd689fe19ba2c89e95f79.tar.bz2
large init script cleanup and merge of whiterussian changes, new dnsmasq config handling
SVN-Revision: 3588
Diffstat (limited to 'openwrt/package/base-files/default/usr/lib/parse-config.awk')
-rw-r--r--openwrt/package/base-files/default/usr/lib/parse-config.awk40
1 files changed, 40 insertions, 0 deletions
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
index 0000000..bde5c00
--- /dev/null
+++ b/openwrt/package/base-files/default/usr/lib/parse-config.awk
@@ -0,0 +1,40 @@
+{
+ 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
+}