|
1 | 1 | #!/bin/bash
|
2 |
| -set -e |
| 2 | +set -eu |
3 | 3 |
|
| 4 | +self="$(basename "$BASH_SOURCE")" |
4 | 5 | cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
5 | 6 |
|
6 |
| -url='git://github.com/docker-library/wordpress' |
| 7 | +# get the most recent commit which modified any of "$@" |
| 8 | +fileCommit() { |
| 9 | + git log -1 --format='format:%H' HEAD -- "$@" |
| 10 | +} |
7 | 11 |
|
8 |
| -echo '# maintainer: InfoSiftr <[email protected]> (@infosiftr)' |
| 12 | +# get the most recent commit which modified "$1/Dockerfile" or any file COPY'd from "$1/Dockerfile" |
| 13 | +dirCommit() { |
| 14 | + local dir="$1"; shift |
| 15 | + ( |
| 16 | + cd "$dir" |
| 17 | + fileCommit \ |
| 18 | + Dockerfile \ |
| 19 | + $(git show HEAD:./Dockerfile | awk ' |
| 20 | + toupper($1) == "COPY" { |
| 21 | + for (i = 2; i < NF; i++) { |
| 22 | + print $i |
| 23 | + } |
| 24 | + } |
| 25 | + ') |
| 26 | + ) |
| 27 | +} |
9 | 28 |
|
10 |
| -defaultVariant='apache' |
| 29 | +cat <<-EOH |
| 30 | +# this file is generated via https://github.com/docker-library/wordpress/blob/$(fileCommit "$self")/$self |
| 31 | +
|
| 32 | +Maintainers: Tianon Gravi <[email protected]> (@tianon), |
| 33 | + Joseph Ferguson <[email protected]> (@yosifkit) |
| 34 | +GitRepo: https://github.com/docker-library/wordpress.git |
| 35 | +EOH |
| 36 | + |
| 37 | +# prints "$2$1$3$1...$N" |
| 38 | +join() { |
| 39 | + local sep="$1"; shift |
| 40 | + local out; printf -v out "${sep//%/%%}%s" "$@" |
| 41 | + echo "${out#$sep}" |
| 42 | +} |
11 | 43 |
|
12 | 44 | for variant in apache fpm; do
|
13 |
| - commit="$(cd "$variant" && git log -1 --format='format:%H' -- Dockerfile $(awk 'toupper($1) == "COPY" { for (i = 2; i < NF; i++) { print $i } }' Dockerfile))" |
14 |
| - fullVersion="$(grep -m1 'ENV WORDPRESS_VERSION ' "$variant/Dockerfile" | cut -d' ' -f3)" |
| 45 | + commit="$(dirCommit "$variant")" |
| 46 | + |
| 47 | + fullVersion="$(git show "$commit":"$variant/Dockerfile" | awk '$1 == "ENV" && $2 == "WORDPRESS_VERSION" { print $3; exit }')" |
15 | 48 | if [[ "$fullVersion" != *.*.* && "$fullVersion" == *.* ]]; then
|
16 | 49 | fullVersion+='.0'
|
17 | 50 | fi
|
18 | 51 |
|
19 | 52 | versionAliases=()
|
20 | 53 | while [ "${fullVersion%.*}" != "$fullVersion" ]; do
|
21 |
| - versionAliases+=( $fullVersion-$variant ) |
22 |
| - if [ "$variant" = "$defaultVariant" ]; then |
23 |
| - versionAliases+=( $fullVersion ) |
24 |
| - fi |
| 54 | + versionAliases+=( $fullVersion ) |
25 | 55 | fullVersion="${fullVersion%.*}"
|
26 | 56 | done
|
27 |
| - versionAliases+=( $fullVersion-$variant $variant ) |
28 |
| - if [ "$variant" = "$defaultVariant" ]; then |
29 |
| - versionAliases+=( $fullVersion latest ) |
| 57 | + versionAliases+=( |
| 58 | + $fullVersion |
| 59 | + latest |
| 60 | + ) |
| 61 | + |
| 62 | + variantAliases=( "${versionAliases[@]/%/-$variant}" ) |
| 63 | + variantAliases=( "${variantAliases[@]//latest-/}" ) |
| 64 | + |
| 65 | + if [ "$variant" = 'apache' ]; then |
| 66 | + variantAliases+=( "${versionAliases[@]}" ) |
30 | 67 | fi
|
31 | 68 |
|
32 | 69 | echo
|
33 |
| - for va in "${versionAliases[@]}"; do |
34 |
| - echo "$va: ${url}@${commit} $variant" |
35 |
| - done |
| 70 | + cat <<-EOE |
| 71 | + Tags: $(join ', ' "${variantAliases[@]}") |
| 72 | + GitCommit: $commit |
| 73 | + Directory: $variant |
| 74 | + EOE |
36 | 75 | done
|
0 commit comments