124a110a1SBaptiste Daroussin#!/usr/bin/awk 224a110a1SBaptiste Daroussin/^[^#]/ { 324a110a1SBaptiste Daroussin gsub(/^\./,"", $1) 41e53d87cSBaptiste Daroussin uname = gname = mode = flags = tags = type = "" 5f4da3de6SBaptiste Daroussin for (i=2; i<=NF; i++) { 6f4da3de6SBaptiste Daroussin if ($i ~ /^uname=/) { 7f4da3de6SBaptiste Daroussin uname=$i 8f1d1786eSBaptiste Daroussin gsub(/uname=/, "", uname) 9f4da3de6SBaptiste Daroussin } else if ($i ~ /^gname=/) { 10f4da3de6SBaptiste Daroussin gname=$i 11f1d1786eSBaptiste Daroussin gsub(/gname=/, "", gname) 12f4da3de6SBaptiste Daroussin } else if ($i ~ /^mode=/) { 13f4da3de6SBaptiste Daroussin mode=$i 14f1d1786eSBaptiste Daroussin gsub(/mode=/,"", mode) 15f4da3de6SBaptiste Daroussin } else if ($i ~ /^flags=/) { 16f4da3de6SBaptiste Daroussin flags=$i 17f1d1786eSBaptiste Daroussin gsub(/flags=/, "", flags) 18f4da3de6SBaptiste Daroussin } else if ($i ~ /^tags=/) { 19f4da3de6SBaptiste Daroussin tags=$i 20f1d1786eSBaptiste Daroussin gsub(/tags=/, "", tags) 211e53d87cSBaptiste Daroussin } else if ($i ~ /^type=dir/) { 221e53d87cSBaptiste Daroussin type="dir" 23f4da3de6SBaptiste Daroussin } 24f4da3de6SBaptiste Daroussin } 253d98f473SGlen Barber if (kernel != "") { 26b6e9a7a2SEmmanuel Vadot if ($1 ~ /^\/boot\/dtb\//) { 27b6e9a7a2SEmmanuel Vadot tags="package=dtb" 28b6e9a7a2SEmmanuel Vadot } else { 293d98f473SGlen Barber tags="package=kernel" 303d98f473SGlen Barber if (_kernconf != "") { 313d98f473SGlen Barber tags=tags""_kernconf 323d98f473SGlen Barber } 333d98f473SGlen Barber } 34b6e9a7a2SEmmanuel Vadot } 35f4da3de6SBaptiste Daroussin if (length(tags) == 0) 36f4da3de6SBaptiste Daroussin next 37f4da3de6SBaptiste Daroussin if (tags ~ /package=/) { 386b710cc6SBaptiste Daroussin ext = pkgname = pkgend = "" 390a48fbc0SBaptiste Daroussin split(tags, a, ","); 400a48fbc0SBaptiste Daroussin for (i in a) { 410a48fbc0SBaptiste Daroussin if (a[i] ~ /^package=/) { 420a48fbc0SBaptiste Daroussin pkgname=a[i] 43b6e9a7a2SEmmanuel Vadot if ($1 ~ /^\/boot\//) { 44b6e9a7a2SEmmanuel Vadot if (kernel != "" && $1 ~ /^\/boot\/dtb\//) 45b6e9a7a2SEmmanuel Vadot pkgname="dtb" 46*11f3da56SEmmanuel Vadot else if ($1 !~ /^\/boot\/firmware\//) 47c016c891SEmmanuel Vadot pkgname="bootloader" 48b6e9a7a2SEmmanuel Vadot } 490a48fbc0SBaptiste Daroussin gsub(/package=/, "", pkgname) 500a48fbc0SBaptiste Daroussin } else if (a[i] == "config") { 510a48fbc0SBaptiste Daroussin type="config" 52af5319f9SEd Maste } else if (a[i] == "development" || a[i] == "debug" || a[i] == "docs") { 536b710cc6SBaptiste Daroussin pkgend=a[i] 54f4da3de6SBaptiste Daroussin } else { 556b710cc6SBaptiste Daroussin if (ext != "") 566b710cc6SBaptiste Daroussin ext=ext"-"a[i] 576b710cc6SBaptiste Daroussin else 580a48fbc0SBaptiste Daroussin ext=a[i] 59f4da3de6SBaptiste Daroussin } 600a48fbc0SBaptiste Daroussin } 616b710cc6SBaptiste Daroussin if (ext != "") { 620a48fbc0SBaptiste Daroussin pkgname=pkgname"-"ext 630a48fbc0SBaptiste Daroussin } 646b710cc6SBaptiste Daroussin if (pkgend != "") { 6544d81980SGlen Barber if (pkgend == "docs") { 666b710cc6SBaptiste Daroussin pkgname=pkgend 676b710cc6SBaptiste Daroussin } else { 686b710cc6SBaptiste Daroussin pkgname=pkgname"-"pkgend 696b710cc6SBaptiste Daroussin } 706b710cc6SBaptiste Daroussin } 710a48fbc0SBaptiste Daroussin } else { 723d98f473SGlen Barber print "No packages specified in line: $0" 730a48fbc0SBaptiste Daroussin next 740a48fbc0SBaptiste Daroussin } 75b6e9a7a2SEmmanuel Vadot if (kernel != "" && pkgname != "dtb") { 763d98f473SGlen Barber output="kernel" 773d98f473SGlen Barber if (_kernconf != "") { 783d98f473SGlen Barber output=output"."_kernconf 793d98f473SGlen Barber } 803d98f473SGlen Barber if ($1 ~ /^\/usr\/lib\/debug\/boot/) { 81697b271dSEd Maste output=output"-dbg.plist" 823d98f473SGlen Barber } else { 83b0bdd783SGlen Barber output=output".plist" 843d98f473SGlen Barber } 853d98f473SGlen Barber } else { 860a48fbc0SBaptiste Daroussin output=pkgname".plist" 873d98f473SGlen Barber } 8824a110a1SBaptiste Daroussin 891e53d87cSBaptiste Daroussin print "@"type"("uname","gname","mode","flags") " $1 > output 9024a110a1SBaptiste Daroussin} 91