forked from docker-library/docker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.architectures-lib
53 lines (43 loc) · 1.3 KB
/
.architectures-lib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env bash
_awkArch() {
local awkExpr="$1"; shift
awk "$@" "/^#|^\$/ { next } $awkExpr" release-architectures
}
hasBashbrewArch() {
local bashbrewArch="$1"; shift
_awkArch 'BEGIN { exitCode = 1 } $1 == bashbrewArch { exitCode = 0 } END { exit exitCode }' -v bashbrewArch="$bashbrewArch"
}
apkArches() {
_awkArch '{ print $2 }'
}
apkToDockerArch() {
local apkArch="$1"; shift
_awkArch '$2 == apkArch { print $3; exit }' -v apkArch="$apkArch"
}
apkToBashbrewArch() {
local apkArch="$1"; shift
_awkArch '$2 == apkArch { print $1; exit }' -v apkArch="$apkArch"
}
_generateParentRepoToArches() {
local repo="$1"; shift
local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/'
eval "declare -g -A parentRepoToArches=( $(
find -name 'Dockerfile' -exec awk '
toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|.*\/.*)(:|$)/ {
print "'"$officialImagesUrl"'" $2
}
' '{}' + \
| sort -u \
| xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"'
) )"
}
_generateParentRepoToArches 'docker'
versionChannel() {
local version="$1"; shift # "17.06", "17.11-rc", etc
local rcVersion="${version%-rc}"
local channel='stable'
if [ "$rcVersion" != "$version" ]; then
channel='test'
fi
echo "$channel"
}