#! /bin/sh [ $# -ne 2 ] && echo "$0 " && exit 0 SRC="$1" DST="$2" # FIXME: ensure this is not already existing in another task uuid_cmd="cat /proc/sys/kernel/random/uuid" gawk -F: -v dst="$DST" -v cmd="$uuid_cmd" ' $1 == "B" { bsp_id = $2 desc = substr($0, 46) bsp_desc[bsp_id] = desc match(desc, /.*:/) task_key = substr(desc, RSTART, RLENGTH) gsub(/"/, "´", task_key) tasks[task_key][bsp_id] = bsp_id } $1 == "U" { upstream[bsp_id] = $2 upstream_desc[bsp_id] = substr($0, 46) } $1 == "*" { $1 = ""; gsub(/"/, "´"); comment[bsp_id] = $0 } /^Priority: N/ { exit } END { FS = " " for (task in tasks) { nam = task gsub(/[: /]/, "_", nam) cmd | getline uuid; close(cmd); F=dst "/" nam ".yaml" delete(sorted_idx) asorti(tasks[task], sorted_idx) print "title: \"Upport " task "\"" > F print "team: MM" >> F print "key: " uuid >> F print "status: Active" >> F print "" >> F print "relationships:\n" >> F print "bsp-commits:" >> F for (idx in sorted_idx) { commit = tasks[task][sorted_idx[idx]] print " -" commit >> F print " # " bsp_desc[commit] >> F } print "" >> F print "upstream:" >> F for (idx in sorted_idx) { commit = tasks[task][sorted_idx[idx]] if (upstream[commit]) print " - torvalds:" upstream[commit] " # " upstream_desc[commit] >> F } print "" >> F print "comments:" >> F for (idx in sorted_idx) { commit = tasks[task][sorted_idx[idx]] if (comment[commit]) print " - \"" substr(commit, 2) ":" substr(comment[commit], 2) "\"" >> F } } } ' $SRC