summaryrefslogtreecommitdiffstats
path: root/bin/templ/pbfields
diff options
context:
space:
mode:
Diffstat (limited to 'bin/templ/pbfields')
-rwxr-xr-xbin/templ/pbfields114
1 files changed, 56 insertions, 58 deletions
diff --git a/bin/templ/pbfields b/bin/templ/pbfields
index 0a36f95..247b18c 100755
--- a/bin/templ/pbfields
+++ b/bin/templ/pbfields
@@ -1,20 +1,19 @@
#!/usr/bin/awk -f
BEGIN {
- fieldstr = "pkgname pkgver pkgrel pkgdesc epoch" \
- " *arch *license *options" \
- " install changelog" \
- " *depends *makedepends *checkdepends *optdepends" \
- " *conflicts *provides" \
- " url *source *noextract *md5sums *sha512sums"
- max = split(fieldstr, fields)
- for (i=1; i<=max; i++) {
- if (sub(/^[*]/, "", fields[i])) arrfield[fields[i]] = 1;
- else strfield[fields[i]] = 1;
- }
-
- COLS = 78
- FS = "\n"; RS = ""
+ fieldstr = "pkgname pkgver pkgrel pkgdesc epoch" \
+ " *arch *license *options" \
+ " install changelog" \
+ " *depends *makedepends *checkdepends *optdepends" \
+ " *conflicts *provides" \
+ " url *source *noextract *md5sums *sha512sums"
+ max = split(fieldstr, fields)
+ for(i=1; i<=max; i++) {
+ if(sub(/^[*]/, "", fields[i])) arrfield[fields[i]] = 1;
+ else strfield[fields[i]] = 1;
+ }
+
+ COLS = 78; FS = "\n"; RS = ""
}
NF < 2 { next }
@@ -26,68 +25,67 @@ $1 == "maintainer" { maintainer = $2 }
$1 ~ /depends$|conflicts|provides|source/ { quotevals() }
$1 == "pkgdesc" {
- gsub(/[$"`]/, "\\\\&", $2)
- $2 = sprintf("\"%s\"", $2)
+ gsub(/[$"`]/, "\\\\&", $2)
+ $2 = sprintf("\"%s\"", $2)
}
strfield[$1] { output[$1] = $2 }
arrfield[$1] {
- output[$1] = wraparray(length($1) + 2)
+ output[$1] = wraparray(length($1) + 2)
}
END {
- if (!maintainer && !packager) { packager = "Anonymous" }
- if (maintainer) print "# Maintainer: " maintainer
- else if (packager) print "# Packager: " packager
- print ""
-
- OFS = "="; ORS = "\n";
- for (i=1; i<=max; i++) {
- name = fields[i]
- if (name in output) print name, output[name]
- }
+ if(!maintainer && !packager) { packager = "Anonymous" }
+ if(maintainer) print "# Maintainer: " maintainer
+ else if(packager) print "# Packager: " packager
+ print ""
+
+ OFS = "="; ORS = "\n";
+ for(i=1; i<=max; i++) {
+ name = fields[i]
+ if(name in output) print name, output[name]
+ }
}
function wraparray (indent)
{
- if (NF == 1) return "()" # this shouldn't happen but just in case.
-
- line = ""
- delete lines
- linecount = 0
-
- i = 2
- while (i <= NF) {
- linelen = length(line)
-
- if ((indent + linelen + 1 + length($i) > COLS) && linelen > 0) {
- lines[++linecount] = line
- line = ""
- }
- else {
- if (linelen == 0) line = $(i++)
- else line = line " " $(i++)
- }
- }
-
- if (length(line) > 0) lines[++linecount] = line
-
- indtxt = sprintf("%" indent "s", "")
- txt = "(" lines[1]
- for (i=2; i<=linecount; i++) txt = txt "\n" indtxt lines[i]
- txt = txt ")"
-
- return txt
+ if(NF == 1) return "()" # this shouldn't happen but just in case.
+
+ line = ""
+ delete lines
+ linecount = 0
+
+ i = 2
+ while(i <= NF) {
+ linelen = length(line)
+
+ if((indent + linelen + 1 + length($i) > COLS) && linelen > 0) {
+ lines[++linecount] = line
+ line = ""
+ } else {
+ if(linelen == 0) line = $(i++)
+ else line = line " " $(i++)
+ }
+ }
+
+ if(length(line) > 0) lines[++linecount] = line
+
+ indtxt = sprintf("%" indent "s", "")
+ txt = "(" lines[1]
+ for(i=2; i<=linecount; i++) txt = txt "\n" indtxt lines[i]
+ txt = txt ")"
+
+ return txt
}
function quotevals ()
{
- for (i=2; i<=NF; i++) $i = bashquote($i)
+ for(i=2; i<=NF; i++) $i = bashquote($i)
}
function bashquote (val)
{
- if (val ~ /\$/) return sprintf("\"%s\"", val)
- return sprintf("'%s'", val)
+ if(val ~ /[$]/) return sprintf("\"%s\"", val)
+ return sprintf("'%s'", val)
}