Skip to content

Commit 60e2168

Browse files
committed
Convert "generate-stackbrew-library.sh" to output the new 2822-based format
1 parent 61dd78c commit 60e2168

File tree

1 file changed

+55
-16
lines changed

1 file changed

+55
-16
lines changed

generate-stackbrew-library.sh

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,75 @@
11
#!/bin/bash
2-
set -e
2+
set -eu
33

4+
self="$(basename "$BASH_SOURCE")"
45
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
56

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+
}
711

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+
}
928

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+
}
1143

1244
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 }')"
1548
if [[ "$fullVersion" != *.*.* && "$fullVersion" == *.* ]]; then
1649
fullVersion+='.0'
1750
fi
1851

1952
versionAliases=()
2053
while [ "${fullVersion%.*}" != "$fullVersion" ]; do
21-
versionAliases+=( $fullVersion-$variant )
22-
if [ "$variant" = "$defaultVariant" ]; then
23-
versionAliases+=( $fullVersion )
24-
fi
54+
versionAliases+=( $fullVersion )
2555
fullVersion="${fullVersion%.*}"
2656
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[@]}" )
3067
fi
3168

3269
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
3675
done

0 commit comments

Comments
 (0)