xref: /freebsd/release/scripts/make-manifest.sh (revision 8834318685bc0063c7e5c8643cbd4d8168eac56c)
1b70047d4SNathan Whitehorn#!/bin/sh
2b70047d4SNathan Whitehorn
3b70047d4SNathan Whitehorn# make-manifest.sh: create checksums and package descriptions for the installer
4b70047d4SNathan Whitehorn#
5b70047d4SNathan Whitehorn#  Usage: make-manifest.sh foo1.txz foo2.txz ...
6b70047d4SNathan Whitehorn#
7b70047d4SNathan Whitehorn# The output file looks like this (tab-delimited):
85a5f93deSGlen Barber#  foo1.txz SHA256-checksum Number-of-files foo1 Description Install-by-default
9b70047d4SNathan Whitehorn#
10b70047d4SNathan Whitehorn# $FreeBSD$
11b70047d4SNathan Whitehorn
12*88343186SGlen Barberbase="Base system"
13*88343186SGlen Barberdoc="Additional Documentation"
14*88343186SGlen Barberkernel="Kernel"
15*88343186SGlen Barberports="Ports tree"
16*88343186SGlen Barbersrc="System source tree"
17*88343186SGlen Barberlib32="32-bit compatibility libraries"
18*88343186SGlen Barbertests="Test suite"
19b70047d4SNathan Whitehorn
20*88343186SGlen Barberdesc_base="${base} (MANDATORY)"
21*88343186SGlen Barberdesc_base_dbg="${base} (Debugging)"
22*88343186SGlen Barberdesc_doc="${doc}"
23*88343186SGlen Barberdesc_kernel="${kernel} (MANDATORY)"
24*88343186SGlen Barberdesc_kernel_dbg="${kernel} (Debugging)"
25*88343186SGlen Barberdesc_kernel_alt="Alternate ${kernel}"
26*88343186SGlen Barberdesc_kernel_alt_dbg="Alternate ${kernel} (Debugging)"
27*88343186SGlen Barberdesc_lib32="${lib32}"
28*88343186SGlen Barberdesc_lib32_dbg="${lib32} (Debugging)"
29*88343186SGlen Barberdesc_ports="${ports}"
30*88343186SGlen Barberdesc_src="${src}"
31*88343186SGlen Barberdesc_tests="${tests}"
32*88343186SGlen Barber
33*88343186SGlen Barberdefault_doc=off
34*88343186SGlen Barberdefault_src=off
35*88343186SGlen Barberdefault_tests=off
36*88343186SGlen Barberdefault_base_dbg=off
37*88343186SGlen Barberdefault_lib32_dbg=off
38*88343186SGlen Barberdefault_kernel_alt=off
39*88343186SGlen Barberdefault_kernel_dbg=on
40*88343186SGlen Barberdefault_kernel_alt_dbg=off
41*88343186SGlen Barber
42*88343186SGlen Barberfor i in ${*}; do
43*88343186SGlen Barber	dist="${i}"
44*88343186SGlen Barber	distname="${i%%.txz}"
45*88343186SGlen Barber	distname="$(echo ${distname} | tr '-' '_')"
46*88343186SGlen Barber	distname="$(echo ${distname} | tr 'kernel.' 'kernel_')"
47*88343186SGlen Barber	hash="$(sha256 -q ${i})"
48*88343186SGlen Barber	nfiles="$(tar tvf ${i} | wc -l | tr -d ' ')"
49*88343186SGlen Barber	default="$(eval echo \${default_${distname}:-on})"
50*88343186SGlen Barber	desc="$(eval echo \"\${desc_${distname}}\")"
51*88343186SGlen Barber
52*88343186SGlen Barber	case ${i} in
53*88343186SGlen Barber		kernel-dbg.txz)
54*88343186SGlen Barber			desc="${desc_kernel_dbg}"
55*88343186SGlen Barber			;;
56*88343186SGlen Barber		kernel.*-dbg.txz)
57*88343186SGlen Barber			desc="$(eval echo \"${desc_kernel_alt_dbg}\")"
58*88343186SGlen Barber			desc="${desc}: $(eval echo ${i%%-dbg.txz} | cut -f 2 -d '.')"
59*88343186SGlen Barber			default="$(eval echo \"${default_kernel_alt_dbg}\")"
60*88343186SGlen Barber			;;
61*88343186SGlen Barber		kernel.*.txz)
62*88343186SGlen Barber			desc="$(eval echo \"${desc_kernel_alt}\")"
63*88343186SGlen Barber			desc="${desc}: $(eval echo ${i%%.txz} | cut -f 2 -d '.')"
64*88343186SGlen Barber			default="$(eval echo \"${default_kernel_alt}\")"
65*88343186SGlen Barber			;;
66*88343186SGlen Barber		*)
67*88343186SGlen Barber			;;
68*88343186SGlen Barber	esac
69*88343186SGlen Barber
70*88343186SGlen Barber	printf "${dist}\t${hash}\t${nfiles}\t${distname}\t\"${desc}\"\t${default}\n"
71b70047d4SNathan Whitehorndone
72b70047d4SNathan Whitehorn
73