Create get_image_size.sh
This commit is contained in:
parent
4d4aa4e1e8
commit
74d7b6b23c
|
|
@ -0,0 +1,64 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ARCH=""
|
||||||
|
MANIFEST_FILE="manifest.json"
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--arch)
|
||||||
|
ARCH="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
MANIFEST_CONTENT=$(cat "$MANIFEST_FILE")
|
||||||
|
|
||||||
|
if echo "$MANIFEST_CONTENT" | jq -e '.[0]' > /dev/null 2>&1; then
|
||||||
|
MANIFEST_ARRAY=$(echo "$MANIFEST_CONTENT" | jq -c '.[]')
|
||||||
|
else
|
||||||
|
MANIFEST_ARRAY=$(echo "$MANIFEST_CONTENT" | jq -c '.')
|
||||||
|
fi
|
||||||
|
|
||||||
|
arch_info=""
|
||||||
|
|
||||||
|
while IFS= read -r item; do
|
||||||
|
if [ -n "$item" ]; then
|
||||||
|
item_arch=$(echo "$item" | jq -r '.Descriptor.platform.architecture // empty')
|
||||||
|
item_variant=$(echo "$item" | jq -r '.Descriptor.platform.variant // empty')
|
||||||
|
|
||||||
|
if [[ "$ARCH" == *"$item_arch"* ]]; then
|
||||||
|
if [ -n "$VARIANT_PART" ]; then
|
||||||
|
if [ "$item_variant" = "$VARIANT_PART" ]; then
|
||||||
|
arch_info="$item"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
arch_info="$item"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done <<< "$MANIFEST_ARRAY"
|
||||||
|
|
||||||
|
if [ -z "$arch_info" ]; then
|
||||||
|
echo "Error: No manifest found for architecture $ARCH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
total_size=0
|
||||||
|
layers=$(echo "$arch_info" | jq -c '.OCIManifest.layers[]')
|
||||||
|
|
||||||
|
if [ -z "$layers" ]; then
|
||||||
|
echo "Error: No layers found in the manifest"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while IFS= read -r layer; do
|
||||||
|
if [ -n "$layer" ]; then
|
||||||
|
size=$(echo "$layer" | jq -r '.size')
|
||||||
|
total_size=$((total_size + size))
|
||||||
|
fi
|
||||||
|
done <<< "$layers"
|
||||||
|
|
||||||
|
echo "$((total_size / 1024 / 1024)) MB"
|
||||||
Loading…
Reference in New Issue