Skip to content

Commit d99bd44

Browse files
committed
Use jq-template.awk
1 parent ba69817 commit d99bd44

File tree

13 files changed

+170
-51
lines changed

13 files changed

+170
-51
lines changed

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
**/Dockerfile linguist-generated
2+
**/start-qemu linguist-generated
3+
Dockerfile.template linguist-language=Dockerfile
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Verify Templating
2+
3+
on:
4+
pull_request:
5+
push:
6+
7+
defaults:
8+
run:
9+
shell: 'bash -Eeuo pipefail -x {0}'
10+
11+
jobs:
12+
apply-templates:
13+
name: Check For Uncomitted Changes
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: Apply Templates
18+
run: ./apply-templates.sh
19+
- name: Generate .travis.yml
20+
run: ./travis.sh
21+
- name: Check Git Status
22+
run: |
23+
status="$(git status --short)"
24+
[ -z "$status" ]

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.jq-template.awk

4.1/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

4.2/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

5.0/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

5.1/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Dockerfile.template

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ ENV QEMU_KEYS \
1414

1515
# https://www.qemu.org/download/#source
1616
# https://download.qemu.org/?C=M;O=D
17-
ENV QEMU_VERSION %%QEMU_VERSION%%
18-
ENV QEMU_URL %%QEMU_URL%%
17+
ENV QEMU_VERSION {{ .version }}
18+
ENV QEMU_URL {{ .url }}
1919

2020
RUN set -eux; \
2121
\

apply-templates.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
[ -f versions.json ] # run "versions.sh" first
5+
6+
jqt='.jq-template.awk'
7+
if [ -n "${BASHBREW_SCRIPTS:-}" ]; then
8+
jqt="$BASHBREW_SCRIPTS/jq-template.awk"
9+
elif [ "$BASH_SOURCE" -nt "$jqt" ]; then
10+
wget -qO "$jqt" 'https://github.com/docker-library/bashbrew/raw/5f0c26381fb7cc78b2d217d58007800bdcfbcfa1/scripts/jq-template.awk'
11+
fi
12+
13+
if [ "$#" -eq 0 ]; then
14+
versions="$(jq -r 'keys | map(@sh) | join(" ")' versions.json)"
15+
eval "set -- $versions"
16+
fi
17+
18+
generated_warning() {
19+
cat <<-EOH
20+
#
21+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
22+
#
23+
# PLEASE DO NOT EDIT IT DIRECTLY.
24+
#
25+
26+
EOH
27+
}
28+
29+
for version; do
30+
export version
31+
32+
echo "processing $version ..."
33+
34+
{
35+
generated_warning
36+
gawk -f "$jqt" Dockerfile.template
37+
} > "$version/Dockerfile"
38+
39+
cp -a start-qemu "$version/"
40+
done

generate-stackbrew-library.sh

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ declare -A aliases=(
1010
self="$(basename "$BASH_SOURCE")"
1111
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
1212

13-
versions=( */ )
14-
versions=( "${versions[@]%/}" )
13+
if [ "$#" -eq 0 ]; then
14+
versions="$(jq -r 'keys | map(@sh) | join(" ")' versions.json)"
15+
eval "set -- $versions"
16+
fi
1517

1618
# sort version numbers with highest first
1719
IFS=$'\n'; versions=( $(echo "${versions[*]}" | sort -rV) ); unset IFS
@@ -52,10 +54,8 @@ join() {
5254
echo "${out#$sep}"
5355
}
5456

55-
for version in "${versions[@]}"; do
56-
commit="$(dirCommit "$version")"
57-
58-
fullVersion="$(git show "$commit":"$version/Dockerfile" | awk '$1 == "ENV" && $2 == "QEMU_VERSION" { print $3; exit }')"
57+
for version; do
58+
fullVersion="$(jq -r --arg version "$version" '.[$version].version' versions.json)"
5959

6060
rcVersion="${version%-rc}"
6161

@@ -69,6 +69,8 @@ for version in "${versions[@]}"; do
6969
${aliases[$version]:-}
7070
)
7171

72+
commit="$(dirCommit "$version")"
73+
7274
echo
7375
cat <<-EOE
7476
Tags: $(join ', ' "${versionAliases[@]}")

0 commit comments

Comments
 (0)