xref: /freebsd/release/scripts/make-manifest.sh (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
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
1188343186SGlen Barberbase="Base system"
1288343186SGlen Barberkernel="Kernel"
1388343186SGlen Barberports="Ports tree"
1488343186SGlen Barbersrc="System source tree"
1588343186SGlen Barberlib32="32-bit compatibility libraries"
1688343186SGlen Barbertests="Test suite"
17b70047d4SNathan Whitehorn
1888343186SGlen Barberdesc_base="${base} (MANDATORY)"
1988343186SGlen Barberdesc_base_dbg="${base} (Debugging)"
2088343186SGlen Barberdesc_kernel="${kernel} (MANDATORY)"
2188343186SGlen Barberdesc_kernel_dbg="${kernel} (Debugging)"
2288343186SGlen Barberdesc_kernel_alt="Alternate ${kernel}"
2388343186SGlen Barberdesc_kernel_alt_dbg="Alternate ${kernel} (Debugging)"
2488343186SGlen Barberdesc_lib32="${lib32}"
2588343186SGlen Barberdesc_lib32_dbg="${lib32} (Debugging)"
2688343186SGlen Barberdesc_ports="${ports}"
2788343186SGlen Barberdesc_src="${src}"
2888343186SGlen Barberdesc_tests="${tests}"
2988343186SGlen Barber
3088343186SGlen Barberdefault_src=off
31893c3eceSSteve Willsdefault_ports=off
3288343186SGlen Barberdefault_tests=off
3388343186SGlen Barberdefault_base_dbg=off
3488343186SGlen Barberdefault_lib32_dbg=off
3588343186SGlen Barberdefault_kernel_alt=off
3688343186SGlen Barberdefault_kernel_dbg=on
3788343186SGlen Barberdefault_kernel_alt_dbg=off
3888343186SGlen Barber
3988343186SGlen Barberfor i in ${*}; do
4088343186SGlen Barber	dist="${i}"
4188343186SGlen Barber	distname="${i%%.txz}"
4288343186SGlen Barber	distname="$(echo ${distname} | tr '-' '_')"
4388343186SGlen Barber	distname="$(echo ${distname} | tr 'kernel.' 'kernel_')"
4488343186SGlen Barber	hash="$(sha256 -q ${i})"
4588343186SGlen Barber	nfiles="$(tar tvf ${i} | wc -l | tr -d ' ')"
4688343186SGlen Barber	default="$(eval echo \${default_${distname}:-on})"
4788343186SGlen Barber	desc="$(eval echo \"\${desc_${distname}}\")"
4888343186SGlen Barber
4988343186SGlen Barber	case ${i} in
50*35f6972eSGlen Barber		doc.txz)
51*35f6972eSGlen Barber			continue
52*35f6972eSGlen Barber			;;
5388343186SGlen Barber		kernel-dbg.txz)
5488343186SGlen Barber			desc="${desc_kernel_dbg}"
5588343186SGlen Barber			;;
5688343186SGlen Barber		kernel.*-dbg.txz)
5788343186SGlen Barber			desc="$(eval echo \"${desc_kernel_alt_dbg}\")"
5888343186SGlen Barber			desc="${desc}: $(eval echo ${i%%-dbg.txz} | cut -f 2 -d '.')"
5988343186SGlen Barber			default="$(eval echo \"${default_kernel_alt_dbg}\")"
6088343186SGlen Barber			;;
6188343186SGlen Barber		kernel.*.txz)
6288343186SGlen Barber			desc="$(eval echo \"${desc_kernel_alt}\")"
6388343186SGlen Barber			desc="${desc}: $(eval echo ${i%%.txz} | cut -f 2 -d '.')"
6488343186SGlen Barber			default="$(eval echo \"${default_kernel_alt}\")"
6588343186SGlen Barber			;;
6688343186SGlen Barber		*)
6788343186SGlen Barber			;;
6888343186SGlen Barber	esac
6988343186SGlen Barber
7088343186SGlen Barber	printf "${dist}\t${hash}\t${nfiles}\t${distname}\t\"${desc}\"\t${default}\n"
71b70047d4SNathan Whitehorndone
72b70047d4SNathan Whitehorn
73