diff --git a/diff-pr.sh b/diff-pr.sh index 38d0c03e8f5d3..5b107504a5cc8 100755 --- a/diff-pr.sh +++ b/diff-pr.sh @@ -87,6 +87,22 @@ archesListTemplate=' {{- end -}} {{- end -}} ' +# ... and SharedTags +sharedTagsListTemplate=' + {{- range $group := .Manifest.GetSharedTagGroups -}} + {{- range $tag := $group.SharedTags -}} + {{- join ":" $.RepoName $tag -}} + {{- " -- " -}} + {{- range $i, $e := $group.Entries -}} + {{- if gt $i 0 -}} + {{- ", " -}} + {{- end -}} + {{- join ":" $.RepoName ($e.Tags | last) -}} + {{- end -}} + {{- "\n" -}} + {{- end -}} + {{- end -}} +' # TODO something less hacky than "git archive" hackery, like a "bashbrew archive" or "bashbrew context" or something template=' @@ -184,6 +200,7 @@ git -C temp init --quiet bashbrew list "${images[@]}" | sort -V > temp/_bashbrew-list || : bashbrew cat --format "$archesListTemplate" "${images[@]}" | sort -V > temp/_bashbrew-arches || : +bashbrew cat --format "$sharedTagsListTemplate" "${images[@]}" | grep -vE '^$' | sort -V > temp/_bashbrew-shared-tags || : for image in "${images[@]}"; do if script="$(bashbrew cat -f "$template" "$image")"; then mkdir tar @@ -200,6 +217,7 @@ git -C oi checkout --quiet pull git -C temp rm --quiet -rf . || : bashbrew list "${images[@]}" | sort -V > temp/_bashbrew-list || : bashbrew cat --format "$archesListTemplate" "${images[@]}" | sort -V > temp/_bashbrew-arches || : +bashbrew cat --format "$sharedTagsListTemplate" "${images[@]}" | grep -vE '^$' | sort -V > temp/_bashbrew-shared-tags || : script="$(bashbrew cat -f "$template" "${images[@]}")" mkdir tar ( eval "$script" | tar -xiC tar )