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