xref: /freebsd/release/scripts/make-manifest.sh (revision 02e9120893770924227138ba49df1edb3896112a)
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
11base="Base system"
12kernel="Kernel"
13ports="Ports tree"
14src="System source tree"
15lib32="32-bit compatibility libraries"
16tests="Test suite"
17
18desc_base="${base} (MANDATORY)"
19desc_base_dbg="${base} (Debugging)"
20desc_kernel="${kernel} (MANDATORY)"
21desc_kernel_dbg="${kernel} (Debugging)"
22desc_kernel_alt="Alternate ${kernel}"
23desc_kernel_alt_dbg="Alternate ${kernel} (Debugging)"
24desc_lib32="${lib32}"
25desc_lib32_dbg="${lib32} (Debugging)"
26desc_ports="${ports}"
27desc_src="${src}"
28desc_tests="${tests}"
29
30default_src=off
31default_ports=off
32default_tests=off
33default_base_dbg=off
34default_lib32_dbg=off
35default_kernel_alt=off
36default_kernel_dbg=on
37default_kernel_alt_dbg=off
38
39for 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"
71done
72
73