openwrt/package/base-files/files/lib/config/template.awk

43 lines
577 B
Awk

# 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 !~ /^@[a-zA-Z0-9_]/) && (noprint != 1) {
n=split(line "@@", a, /@@/)
for (i=1; i<=n; i++) {
if ((i % 2) == 1) printf "%s" a[i]
else printf "%s" v[a[i]]
}
print ""
}
$1 == "@endif" {
if_open = 0
noprint = 0
}