Skip to content

Commit 9b60add

Browse files
committed
build: support zsh with bash
1 parent 69c9f70 commit 9b60add

File tree

3 files changed

+47
-20
lines changed

3 files changed

+47
-20
lines changed

.github/workflows/development.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ jobs:
5050
-
5151
name: Checkout
5252
uses: actions/checkout@v4
53-
53+
-
54+
name: Setup
55+
run: |
56+
sudo apt-get -y install skopeo
5457
-
5558
name: Set up QEMU
5659
uses: docker/setup-qemu-action@v3

.github/workflows/main.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ jobs:
5252
-
5353
name: Checkout
5454
uses: actions/checkout@v4
55-
55+
-
56+
name: Setup
57+
run: |
58+
sudo apt-get -y install skopeo
5659
-
5760
name: Set up QEMU
5861
uses: docker/setup-qemu-action@v3

env.sh

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,56 @@
1+
RETURN=RETURN
2+
if >/dev/null 2>&1 (set -o pipefail); then
3+
set -o pipefail
4+
fi
5+
if >/dev/null 2>&1 ( shopt -s nullglob ); then
6+
shopt -s nullglob
7+
fi
8+
_testrap() {
9+
trap '' RETURN
10+
}
11+
if ! >/dev/null 2>&1 ( _testrap ) ; then
12+
RETURN=EXIT
13+
fi
114
set -eu
2-
set -o pipefail
3-
shopt -s nullglob
415

5-
6-
jq="$(command -v jq)"
16+
skopeo=$(command -v skopeo)
717

818
digest_of() {
19+
local rc=
920
local repo="${1:-}"
1021
local log="${2:-}"
11-
if [ "x$jq" = 'x' ]; then
12-
>&2 echo 'jq not installed!'
13-
return 101
22+
if [ x$skopeo = x ]; then
23+
>&2 echo 'skopeo not installed!'
24+
return 102
1425
fi
1526
if [ "x$repo" = 'x' ]; then
1627
>&2 echo 'no repo provided!'
1728
return 1
1829
fi
19-
local PIPE=$(mktemp -u)
30+
local PIPE="$(mktemp -u)"
2031
mkfifo "$PIPE"
2132
exec 3<> "$PIPE"
2233
rm $PIPE
2334
if [ "x$log" = 'x' ]; then
24-
log="$(mktemp digest_of.log.XXXX)"
25-
trap "rm -f $log;exec 3>&-" RETURN
35+
PIPE="$(mktemp -u)"
36+
mkfifo "$PIPE"
37+
exec 4<>"$PIPE"
38+
rm $PIPE
39+
trap "exec 4>&-;exec 3>&-" $RETURN
2640
else
27-
trap "exec 3>&-" RETURN
41+
trap "exec 3>&-" $RETURN
2842
fi
29-
if ! 2>>"$log" docker inspect "$repo" | >&3 2>>"$log" $jq -r '.[].RepoDigests[]'; then
30-
>&2 echo 'Unable to inspect '"$repo"'!'
43+
44+
rc=0
45+
2>>"$log" skopeo \
46+
inspect \
47+
--raw docker://"$repo" | >&3 2>>"$log" skopeo \
48+
manifest-digest /dev/stdin || rc=$?
49+
50+
if [ $rc -ne 0 ] ; then
51+
>&2 echo 'Unable to inspect '"$repo"' (return code: '$rc')!'
3152
>&2 cat "$log"
32-
return 16
53+
return $rc
3354
fi
3455

3556
local digest
@@ -45,13 +66,13 @@ trim_slash() {
4566
local s
4667
for s in "${@:-}"
4768
do
48-
sed -E 's://*:/:g; s:(^/)?/*$:\1:' <<< "${s}"
69+
echo "${s}" | sed -E 's://*:/:g; s:(^/)?/*$:\1:'
4970
done;
5071
}
5172

52-
ALPINE_VERSION="${1:-}"
53-
PYTHON_VERSION="${2:-}"
54-
ORG="${3:-}"
73+
ALPINE_VERSION="${1:-${ALPINE_VERSION:-}}"
74+
PYTHON_VERSION="${2:-${PYTHON_VERSION:-}}"
75+
ORG="${3:-${ORG:-}}"
5576

5677
if case "$ALPINE_VERSION" in alpine*) true ;; *) false ;; esac ; then
5778
ALPINE_VERSION="$(echo "$ALPINE_VERSION" | sed 's|alpine||g')"

0 commit comments

Comments
 (0)