aboutsummaryrefslogtreecommitdiff
path: root/debian-container/lib/container.sh
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-10-29 02:35:56 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-10-29 02:35:56 +0800
commitb25c21a3272416d52e805b5253cc46f59587d4c2 (patch)
tree64b333d92559aee4bc2d9e958d31b3bfbcaf6055 /debian-container/lib/container.sh
parent808c626c612b238f6923c3ec2d6a05c5611d87db (diff)
downloadrutils-b25c21a3272416d52e805b5253cc46f59587d4c2.tar.gz
rutils-b25c21a3272416d52e805b5253cc46f59587d4c2.tar.xz
Add manifest generation and checksum verification for Debian base tarballs.
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
Diffstat (limited to 'debian-container/lib/container.sh')
-rw-r--r--debian-container/lib/container.sh18
1 files changed, 17 insertions, 1 deletions
diff --git a/debian-container/lib/container.sh b/debian-container/lib/container.sh
index 2ae920e..b3d8c9b 100644
--- a/debian-container/lib/container.sh
+++ b/debian-container/lib/container.sh
@@ -128,6 +128,7 @@ dc_base_create() {
local mirror=$DC_MIRROR
local include=$DC_INCLUDE
local exclude=$DC_EXCLUDE
+ local manifest=
local temporary_root
local -a debootstrap_options=(--variant=minbase)
@@ -138,6 +139,11 @@ dc_base_create() {
output=$2
shift 2
;;
+ --manifest)
+ (($# >= 2)) || dc_die '--manifest 需要一个文件路径。'
+ manifest=$2
+ shift 2
+ ;;
--suite)
(($# >= 2)) || dc_die '--suite 需要一个版本名称。'
suite=$2
@@ -174,10 +180,18 @@ dc_base_create() {
done
output=$(readlink -m -- "$output")
+ if [[ -z "$manifest" ]]; then
+ manifest="$output.manifest"
+ else
+ manifest=$(readlink -m -- "$manifest")
+ fi
+ [[ "$manifest" != "$output" ]] || dc_die 'manifest 不能覆盖 tarball。'
[[ ! -e "$output" ]] || dc_die "tarball 已存在:$output"
+ [[ ! -e "$manifest" ]] || dc_die "manifest 已存在:$manifest"
- dc_require_commands debootstrap mktemp readlink
+ dc_require_commands awk date debootstrap mktemp readlink sha256sum
mkdir -p "$(dirname -- "$output")"
+ mkdir -p "$(dirname -- "$manifest")"
temporary_root=$(mktemp -d)
[[ -n "$arch" ]] && debootstrap_options+=("--arch=$arch")
@@ -192,7 +206,9 @@ dc_base_create() {
"$suite" "$temporary_root" "$mirror"
)
+ dc_manifest_write "$manifest" "$output" "$suite" "${arch:-native}" "$mirror" "$include" "$exclude"
echo "基础 tarball 已创建:$output"
+ echo "manifest 已创建:$manifest"
}
dc_enter() {