Skip to content

Commit 75e26c9

Browse files
committed
feat: Generate image info
Provides a useful reference for the state of the current installed image that can be utilized via ublue update for auto-signing or in scripts to determine what changes to make and exclude Also ships jq for parsing generated image information For example... `jq '."image-flavor"' /usr/share/ublue-os/image-info.json` ... would print the flavor of the image (I.E. nvidia)
1 parent bb4cf9f commit 75e26c9

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

Containerfile

+9
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-38}"
55

66

77
FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS main
8+
89
ARG IMAGE_NAME="${IMAGE_NAME:-silverblue}"
10+
ARG IMAGE_VENDOR="ublue-os"
11+
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
912
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-38}"
1013

1114
COPY github-release-install.sh /tmp/github-release-install.sh
15+
COPY image-info.sh /tmp/image-info.sh
1216
COPY main-install.sh /tmp/main-install.sh
1317
COPY main-post-install.sh /tmp/main-post-install.sh
1418
COPY main-packages.json /tmp/main-packages.json
@@ -18,6 +22,7 @@ COPY --from=ghcr.io/ublue-os/akmods:${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rp
1822

1923
COPY system_files /
2024

25+
RUN /tmp/image-info.sh
2126
RUN /tmp/main-install.sh
2227
RUN /tmp/main-post-install.sh
2328

@@ -30,7 +35,10 @@ RUN mkdir -p /var/tmp && chmod -R 1777 /var/tmp
3035

3136

3237
FROM main AS nvidia
38+
3339
ARG IMAGE_NAME="${IMAGE_NAME:-silverblue}"
40+
ARG IMAGE_VENDOR="ublue-os"
41+
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-nvidia}"
3442
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-38}"
3543
ARG NVIDIA_MAJOR_VERSION="${NVIDIA_MAJOR_VERSION:-535}"
3644

@@ -39,6 +47,7 @@ COPY nvidia-post-install.sh /tmp/nvidia-post-install.sh
3947

4048
COPY --from=ghcr.io/ublue-os/akmods-nvidia:${FEDORA_MAJOR_VERSION}-${NVIDIA_MAJOR_VERSION} /rpms /tmp/akmods-rpms
4149

50+
RUN /tmp/image-info.sh
4251
RUN /tmp/nvidia-install.sh
4352
RUN /tmp/nvidia-post-install.sh
4453
RUN rm -rf /tmp/* /var/*

image-info.sh

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env bash
2+
3+
set -oue pipefail
4+
5+
IMAGE_INFO="/usr/share/ublue-os/image-info.json"
6+
IMAGE_REF="docker://ghcr.io/$IMAGE_VENDOR/$IMAGE_NAME"
7+
8+
case $FEDORA_MAJOR_VERSION in
9+
38)
10+
IMAGE_TAG="latest"
11+
;;
12+
*)
13+
IMAGE_TAG="$FEDORA_MAJOR_VERSION"
14+
;;
15+
esac
16+
17+
cat > $IMAGE_INFO <<EOF
18+
{
19+
"image-name": "$IMAGE_NAME",
20+
"image-flavor": "$IMAGE_FLAVOR",
21+
"image-vendor": "$IMAGE_VENDOR",
22+
"image-ref": "$IMAGE_REF",
23+
"image-tag":"$IMAGE_TAG",
24+
"fedora-version": "$FEDORA_MAJOR_VERSION"
25+
}
26+
EOF

main-packages.json

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"htop",
1616
"intel-media-driver",
1717
"just",
18+
"jq",
1819
"kernel-devel-matched",
1920
"kernel-tools",
2021
"libheif-tools",

0 commit comments

Comments
 (0)