#!/bin/awk

BEGIN {
  OFS = " | "
  FS = " *= *"
}

{
  if (FILENAME != filename) {
    process()
    filename = FILENAME
    summary = ""
    category = ""
    deprecated = 0
    contrib = 0
  }
}

/^### / {
  if (summary == "") {
    summary = substr($0, 5)
    next
  }
}

/^#### +CATEGORY *=/ {
  if (category == "") {
    category = toupper(substr($2,1,1)) tolower(substr($2,2))
    next
  }
}

/^#### +DEPRECATED/ {
  deprecated = 1
}

function process() {
  if (filename && (show_deprecated || !deprecated)) {
    toolname = filename
    sub(/.fx$/, "", toolname)
    sub(/^.*\//, "",  toolname)

    if (match(filename, "/contrib/")) {
      summary = "(contrib) " summary
      contrib = 1
    }

    if (!contrib || !hide_contrib) {
      if (match(filename, "^.*/vendor/")) {
        vendor_starts=RLENGTH+1
        if (match(filename, "[^/]+/scripts/devshell/")) {
          toolname = "vendor " substr(filename, vendor_starts, RLENGTH - length("/scripts/devshell/")) " " toolname
        }
      }

      if (!category) {
        category = "unknown category"
      }
      if (deprecated == 1) {
        summary = "(DEPRECATED) " summary
      }
      by_cat[category] = by_cat[category] "  " toolname " | " summary "\n"
    }
  }
}

function print_category(category) {
  if (by_cat[category]) {
    print category ":"
    print by_cat[category] | command
    close(command)
    print ""
    delete by_cat[category]
  }
}

END {
  process()
  command="sort | column -t -s '|' -c 2"

  # print known categories in a specific order
  print_category("Source tree")
  print_category("Documentation")
  print_category("Build")
  print_category("Device discovery")
  print_category("Device management")
  print_category("Software delivery")
  print_category("Run, inspect and debug")
  print_category("Other")

  # print the remaining categories in no defined order (no easy way to reorder
  # an array in posix awk)
  for (category in by_cat) {
    print_category(category)
  }
}

