Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/release/scripts/make-manifest.sh
34677 views
1
#!/bin/sh
2
3
# make-manifest.sh: create checksums and package descriptions for the installer
4
#
5
# Usage: make-manifest.sh foo1.txz foo2.txz ...
6
#
7
# The output file looks like this (tab-delimited):
8
# foo1.txz SHA256-checksum Number-of-files foo1 Description Install-by-default
9
#
10
11
base="Base system"
12
kernel="Kernel"
13
ports="Ports tree"
14
src="System source tree"
15
lib32="32-bit compatibility libraries"
16
tests="Test suite"
17
18
desc_base="${base} (MANDATORY)"
19
desc_base_dbg="${base} debug info"
20
desc_kernel="${kernel} (MANDATORY)"
21
desc_kernel_dbg="${kernel} debug info"
22
desc_kernel_alt="Alternate ${kernel}"
23
desc_kernel_alt_dbg="Alternate ${kernel} debug info"
24
desc_lib32="${lib32}"
25
desc_lib32_dbg="${lib32} (Debugging)"
26
desc_ports="${ports}"
27
desc_src="${src}"
28
desc_tests="${tests}"
29
30
default_src=off
31
default_ports=off
32
default_tests=off
33
default_base_dbg=off
34
default_lib32_dbg=off
35
default_kernel_alt=off
36
default_kernel_dbg=on
37
default_kernel_alt_dbg=off
38
39
for i in ${*}; do
40
dist="${i}"
41
distname="${i%%.txz}"
42
distname="$(echo ${distname} | tr '-' '_')"
43
distname="$(echo ${distname} | tr 'kernel.' 'kernel_')"
44
hash="$(sha256 -q ${i})"
45
nfiles="$(tar tvf ${i} | wc -l | tr -d ' ')"
46
default="$(eval echo \${default_${distname}:-on})"
47
desc="$(eval echo \"\${desc_${distname}}\")"
48
49
case ${i} in
50
doc.txz)
51
continue
52
;;
53
kernel-dbg.txz)
54
desc="${desc_kernel_dbg}"
55
;;
56
kernel.*-dbg.txz)
57
desc="$(eval echo \"${desc_kernel_alt_dbg}\")"
58
desc="${desc}: $(eval echo ${i%%-dbg.txz} | cut -f 2 -d '.')"
59
default="$(eval echo \"${default_kernel_alt_dbg}\")"
60
;;
61
kernel.*.txz)
62
desc="$(eval echo \"${desc_kernel_alt}\")"
63
desc="${desc}: $(eval echo ${i%%.txz} | cut -f 2 -d '.')"
64
default="$(eval echo \"${default_kernel_alt}\")"
65
;;
66
*)
67
;;
68
esac
69
70
printf "${dist}\t${hash}\t${nfiles}\t${distname}\t\"${desc}\"\t${default}\n"
71
done
72
73
74