mtree-to-plist.awk revision 280215
1126745Sbenno#!/usr/bin/awk 2126745Sbenno/^[^#]/ { 3126745Sbenno gsub(/^\./,"", $1) 4126745Sbenno uname = gname = mode = flags = tags = type = "" 5126745Sbenno for (i=2; i<=NF; i++) { 6126745Sbenno if ($i ~ /^uname=/) { 7126745Sbenno uname=$i 8126745Sbenno gsub(/uname=/, "", uname) 9126745Sbenno } else if ($i ~ /^gname=/) { 10126745Sbenno gname=$i 11126745Sbenno gsub(/gname=/, "", gname) 12126745Sbenno } else if ($i ~ /^mode=/) { 13126745Sbenno mode=$i 14126745Sbenno gsub(/mode=/,"", mode) 15126745Sbenno } else if ($i ~ /^flags=/) { 16126745Sbenno flags=$i 17126745Sbenno gsub(/flags=/, "", flags) 18126745Sbenno } else if ($i ~ /^tags=/) { 19126745Sbenno tags=$i 20126745Sbenno gsub(/tags=/, "", tags) 21126745Sbenno } else if ($i ~ /^type=dir/) { 22126745Sbenno type="dir" 23126745Sbenno } 24126745Sbenno } 25126745Sbenno if (length(tags) == 0) 26126745Sbenno next 27126745Sbenno if (tags ~ /package=/) { 28126745Sbenno ext = pkgname = pkgend = "" 29126745Sbenno split(tags, a, ","); 30126745Sbenno for (i in a) { 31126745Sbenno if (a[i] ~ /^package=/) { 32126745Sbenno pkgname=a[i] 33126745Sbenno gsub(/package=/, "", pkgname) 34126745Sbenno } else if (a[i] == "config") { 35126745Sbenno type="config" 36126745Sbenno } else if (a[i] == "development" || a[i] == "profile") { 37126745Sbenno pkgend=a[i] 38126745Sbenno } else { 39126745Sbenno if (ext != "") 40126745Sbenno ext=ext"-"a[i] 41126745Sbenno else 42126745Sbenno ext=a[i] 43126745Sbenno } 44126745Sbenno } 45126745Sbenno if (ext != "") { 46131861Sru if (pkgname == "runtime") { 47131530Sru pkgname=ext 48131530Sru } else { 49131861Sru pkgname=pkgname"-"ext 50126745Sbenno } 51131861Sru } 52131530Sru if (pkgend != "") { 53131530Sru if (pkgname == "runtime") { 54131861Sru pkgname=pkgend 55126745Sbenno } else { 56131861Sru pkgname=pkgname"-"pkgend 57131861Sru } 58126745Sbenno } 59131861Sru } else { 60126745Sbenno print "No packages specified in line: $0" > 2 61126745Sbenno next 62126745Sbenno } 63242997Sjoel output=pkgname".plist" 64131861Sru 65126745Sbenno print "@"type"("uname","gname","mode","flags") " $1 > output 66131861Sru} 67126745Sbenno