]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - release/scripts/make-manifest.sh
MFV r324714:
[FreeBSD/FreeBSD.git] / release / scripts / make-manifest.sh
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 # $FreeBSD$
11
12 base="Base system"
13 doc="Additional Documentation"
14 kernel="Kernel"
15 ports="Ports tree"
16 src="System source tree"
17 lib32="32-bit compatibility libraries"
18 tests="Test suite"
19
20 desc_base="${base} (MANDATORY)"
21 desc_base_dbg="${base} (Debugging)"
22 desc_doc="${doc}"
23 desc_kernel="${kernel} (MANDATORY)"
24 desc_kernel_dbg="${kernel} (Debugging)"
25 desc_kernel_alt="Alternate ${kernel}"
26 desc_kernel_alt_dbg="Alternate ${kernel} (Debugging)"
27 desc_lib32="${lib32}"
28 desc_lib32_dbg="${lib32} (Debugging)"
29 desc_ports="${ports}"
30 desc_src="${src}"
31 desc_tests="${tests}"
32
33 default_doc=off
34 default_src=off
35 default_ports=off
36 default_tests=off
37 default_base_dbg=off
38 default_lib32_dbg=off
39 default_kernel_alt=off
40 default_kernel_dbg=on
41 default_kernel_alt_dbg=off
42
43 for i in ${*}; do
44         dist="${i}"
45         distname="${i%%.txz}"
46         distname="$(echo ${distname} | tr '-' '_')"
47         distname="$(echo ${distname} | tr 'kernel.' 'kernel_')"
48         hash="$(sha256 -q ${i})"
49         nfiles="$(tar tvf ${i} | wc -l | tr -d ' ')"
50         default="$(eval echo \${default_${distname}:-on})"
51         desc="$(eval echo \"\${desc_${distname}}\")"
52
53         case ${i} in
54                 kernel-dbg.txz)
55                         desc="${desc_kernel_dbg}"
56                         ;;
57                 kernel.*-dbg.txz)
58                         desc="$(eval echo \"${desc_kernel_alt_dbg}\")"
59                         desc="${desc}: $(eval echo ${i%%-dbg.txz} | cut -f 2 -d '.')"
60                         default="$(eval echo \"${default_kernel_alt_dbg}\")"
61                         ;;
62                 kernel.*.txz)
63                         desc="$(eval echo \"${desc_kernel_alt}\")"
64                         desc="${desc}: $(eval echo ${i%%.txz} | cut -f 2 -d '.')"
65                         default="$(eval echo \"${default_kernel_alt}\")"
66                         ;;
67                 *)
68                         ;;
69         esac
70
71         printf "${dist}\t${hash}\t${nfiles}\t${distname}\t\"${desc}\"\t${default}\n"
72 done
73