Skip to content

Commit 59c6589

Browse files
committed
verify asdfa
1 parent 8b483e7 commit 59c6589

4 files changed

Lines changed: 60 additions & 15 deletions

File tree

src/base/.devcontainer/.tool-versions.asdf

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/base/.devcontainer/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@ ARG CONTAINER_NAME
99
ARG IMAGE_TAG
1010
ARG TARGETARCH
1111
ARG SAM_VERSION="v1.158.0"
12+
ARG ASDF_VERSION="v0.18.1"
1213

1314
ENV SCRIPTS_DIR=${SCRIPTS_DIR}
1415
ENV CONTAINER_NAME=${CONTAINER_NAME}
1516
ENV TARGETARCH=${TARGETARCH}
1617
ENV SAM_VERSION=${SAM_VERSION}
18+
ENV ASDF_VERSION=${ASDF_VERSION}
1719

18-
COPY .tool-versions.asdf ${SCRIPTS_DIR}/${CONTAINER_NAME}/.tool-versions.asdf
1920
COPY --chmod=755 scripts/lifecycle/*.sh ${SCRIPTS_DIR}/
2021
COPY --chmod=755 scripts/root_install.sh ${SCRIPTS_DIR}/${CONTAINER_NAME}/root_install.sh
2122
COPY --chmod=755 scripts/install_aws_sam_cli.sh ${SCRIPTS_DIR}/${CONTAINER_NAME}/install_aws_sam_cli.sh
23+
COPY --chmod=755 scripts/install_asdf.sh ${SCRIPTS_DIR}/${CONTAINER_NAME}/install_asdf.sh
2224
COPY --chmod=755 Mk ${SCRIPTS_DIR}/Mk
2325

2426
WORKDIR ${SCRIPTS_DIR}/${CONTAINER_NAME}
@@ -30,7 +32,6 @@ COPY --from=grant-build /grant /usr/local/bin/grant
3032
COPY --from=zizmor-build /zizmor /usr/local/bin/zizmor
3133
COPY --chmod=755 scripts/vscode_install.sh ${SCRIPTS_DIR}/${CONTAINER_NAME}/vscode_install.sh
3234
USER vscode
33-
COPY --chown=vscode:vscode .tool-versions.asdf /home/vscode/.tool-versions.asdf
3435
COPY --chown=vscode:vscode .tool-versions /home/vscode/.tool-versions
3536
COPY --chown=vscode:vscode .grant.yaml /home/vscode/.grant.yaml
3637

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bash
2+
3+
VERSION=${VERSION:-"v0.18.1"}
4+
# Expected SHA256 checksums taken from https://github.com/asdf-vm/asdf/releases/tag/v0.18.1
5+
# When we change asdf versions, these must be changed
6+
sha256sum_expected_arm="sha256:1850faf576cab7acb321e99dd98d3fe0d4665e1331086ad9ed991aeec1dc9d36"
7+
sha256sum_expected_amd64="sha256:56141dc99eab75c140dcdd85cf73f3b82fed2485a8dccd4f11a4dc5cbcb6ea5c"
8+
9+
if [ "$(id -u)" -ne 0 ]; then
10+
echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
11+
exit 1
12+
fi
13+
14+
# Checks if packages are installed and installs them if not
15+
check_packages() {
16+
if ! dpkg -s "$@" > /dev/null 2>&1; then
17+
apt_get_update
18+
apt-get -y install --no-install-recommends "$@"
19+
fi
20+
}
21+
22+
check_packages curl ca-certificates tar sha256sum
23+
24+
install() {
25+
tmp_dir="$(mktemp -d)"
26+
trap 'rm -rf "${tmp_dir}"' EXIT
27+
28+
download_file="${tmp_dir}/asdf.tar.gz"
29+
30+
if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" == "aarch64" ]; then
31+
download_url="https://github.com/asdf-vm/asdf/releases/download/${VERSION}/asdf-${VERSION}-linux-arm64.tar.gz"
32+
sha256sum_expected="${sha256sum_expected_arm}"
33+
else
34+
download_url="https://github.com/asdf-vm/asdf/releases/download/${VERSION}/asdf-${VERSION}-linux-amd64.tar.gz"
35+
sha256sum_expected="${sha256sum_expected_amd64}"
36+
fi
37+
curl -fsSL "${download_url}" -o "${download_file}"
38+
39+
download_file_sha256sum=$(sha256sum "${download_file}" | awk '{print $1}')
40+
if [ "${download_file_sha256sum}" != "${sha256sum_expected#sha256:}" ]; then
41+
echo "SHA256 checksum mismatch for downloaded asdf archive"
42+
echo "Expected: ${sha256sum_expected}"
43+
echo "Actual: sha256:${download_file_sha256sum}"
44+
exit 1
45+
fi
46+
47+
tar -xzf "${download_file}" -C "${tmp_dir}"
48+
mkdir -p /usr/bin
49+
mv "${tmp_dir}/asdf" /usr/bin/asdf
50+
chmod +x /usr/bin/asdf
51+
}
52+
echo "(*) Installing asdf..."
53+
54+
install
55+
56+
echo "Done!"

src/base/.devcontainer/scripts/root_install.sh

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,7 @@ apt-get -y install --no-install-recommends htop vim curl git build-essential \
3636
VERSION="${SAM_VERSION}" "${SCRIPTS_DIR}/${CONTAINER_NAME}/install_aws_sam_cli.sh"
3737
# Install ASDF
3838
echo "Installing asdf"
39-
ASDF_VERSION=$(awk '!/^#/ && NF {print $1; exit}' "${SCRIPTS_DIR}/${CONTAINER_NAME}/.tool-versions.asdf")
40-
if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" == "aarch64" ]; then
41-
wget -O /tmp/asdf.tar.gz --no-verbose "https://github.com/asdf-vm/asdf/releases/download/v${ASDF_VERSION}/asdf-v${ASDF_VERSION}-linux-arm64.tar.gz"
42-
else
43-
wget -O /tmp/asdf.tar.gz --no-verbose "https://github.com/asdf-vm/asdf/releases/download/v${ASDF_VERSION}/asdf-v${ASDF_VERSION}-linux-amd64.tar.gz"
44-
fi
45-
tar -xzf /tmp/asdf.tar.gz -C /tmp
46-
mkdir -p /usr/bin
47-
mv /tmp/asdf /usr/bin/asdf
48-
chmod +x /usr/bin/asdf
49-
rm -rf /tmp/asdf.tar.gz
39+
VERSION="${ASDF_VERSION}" "${SCRIPTS_DIR}/${CONTAINER_NAME}/install_asdf.sh"
5040

5141
# install gitsecrets
5242
git clone https://github.com/awslabs/git-secrets.git /tmp/git-secrets

0 commit comments

Comments
 (0)