@@ -69,20 +69,21 @@ jobs:
6969 }
7070 echo "| ${QUOTE}${PLATFORM}${QUOTE} | $BEFORE -> $AFTER => $DIFF | $CHANGED / $AFTER = $PERCENT% |"
7171 for STATE in before after; do
72- # Split store paths into package name and version; non-default outputs are appended to the name (e.g. `brotli.lib`) .
72+ # Split store paths into package name, output (or source archive extension), and version .
7373 awk -v OFS='\t' -v PLATFORM="$PLATFORM" '{
7474 name = substr($0, 45)
7575 pname = name
76+ output = "out"
7677 version = "_unversioned_"
7778 if (match(name, /-[^A-Za-z]/)) {
7879 pname = substr(name, 1, RSTART - 1)
7980 version = substr(name, RSTART + 1)
80- if (match(version, /-[a-z]+$/)) {
81- pname = pname "." substr(version, RSTART + 1)
81+ if (match(version, /-[a-z]+$/) || match(version, /\.(tar(\.[a-z0-9]+)?|tgz|tbz2?|txz|zip|patch|diff)$/) ) {
82+ output = substr(version, RSTART + 1)
8283 version = substr(version, 1, RSTART - 1)
8384 }
8485 }
85- print pname, version, PLATFORM, $0
86+ print pname, output, version, PLATFORM, $0
8687 }' "requisites-${PLATFORM}-${STATE}.list" >> "requisites-${STATE}.list"
8788 done
8889 done
@@ -118,10 +119,10 @@ jobs:
118119 gsub(/ /, post ", " pre, s)
119120 return s
120121 }
121- /^[-+]/ && NF == 4 {
122- key = substr($1, 2) SUBSEP $3
123- if (substr($1, 1, 1) == "-") removed[key] = insert(removed[key], $2 )
124- else added[key] = insert(added[key], $2 )
122+ /^[-+]/ && NF == 5 {
123+ key = substr($1, 2) SUBSEP $2 SUBSEP $4
124+ if (substr($1, 1, 1) == "-") removed[key] = insert(removed[key], $3 )
125+ else added[key] = insert(added[key], $3 )
125126 }
126127 END {
127128 for (key in removed) if (!(key in added)) added[key] = ""
@@ -133,12 +134,20 @@ jobs:
133134 else if (r == "") change = "_added_: " join(a, "**", "**")
134135 else if (a == "") change = "_removed_: " join(r)
135136 else change = join(r) " -> " join(a, "**", "**")
136- group [k[1] SUBSEP change] = insert(group [k[1] SUBSEP change], k[2 ])
137+ platforms [k[1] SUBSEP k[2] SUBSEP change] = insert(platforms [k[1] SUBSEP k[2] SUBSEP change], k[3 ])
137138 }
138- for (g in group) {
139- split(g, k, SUBSEP)
139+ for (key in platforms) {
140+ split(key, k, SUBSEP)
141+ row = k[1] SUBSEP k[3] SUBSEP join(platforms[key])
142+ outputs[row] = insert(outputs[row], k[2])
143+ }
144+ for (row in outputs) {
145+ split(row, k, SUBSEP)
146+ n = split(outputs[row], o, " ")
147+ name = ""
148+ for (i = 1; i <= n; i++) name = name ", `" k[1] (o[i] == "out" ? "" : "." o[i]) "`"
140149 rank = k[2] ~ /^_added_/ ? 0 : k[2] ~ /^_removed_/ ? 2 : k[2] ~ /^_no version change_/ ? 3 : 1
141- print rank "\t| `" k[1] "` | " k[2] " | " join(group[g]) " |"
150+ print rank "\t| " substr(name, 3) " | " k[2] " | " k[3] " |"
142151 }
143152 }
144153 ' requisites.diff > versions.tsv
0 commit comments