#!/bin/sh # make-manifest.sh: create checksums and package descriptions for the installer # # Usage: make-manifest.sh foo1.txz foo2.txz ... # # The output file looks like this (tab-delimited): # foo1.txz SHA256-checksum Number-of-files foo1 Description Install-by-default # # $FreeBSD: stable/11/release/scripts/make-manifest.sh 303027 2016-07-19 16:22:50Z gjb $ setglobal base = '"Base system'" setglobal doc = '"Additional Documentation'" setglobal kernel = '"Kernel'" setglobal ports = '"Ports tree'" setglobal src = '"System source tree'" setglobal lib32 = '"32-bit compatibility libraries'" setglobal tests = '"Test suite'" setglobal desc_base = ""$(base) (MANDATORY)"" setglobal desc_base_dbg = ""$(base) (Debugging)"" setglobal desc_doc = $(doc) setglobal desc_kernel = ""$(kernel) (MANDATORY)"" setglobal desc_kernel_dbg = ""$(kernel) (Debugging)"" setglobal desc_kernel_alt = ""Alternate $(kernel)"" setglobal desc_kernel_alt_dbg = ""Alternate $(kernel) (Debugging)"" setglobal desc_lib32 = $(lib32) setglobal desc_lib32_dbg = ""$(lib32) (Debugging)"" setglobal desc_ports = $(ports) setglobal desc_src = $(src) setglobal desc_tests = $(tests) setglobal default_doc = 'off' setglobal default_src = 'off' setglobal default_tests = 'off' setglobal default_base_dbg = 'off' setglobal default_lib32_dbg = 'off' setglobal default_kernel_alt = 'off' setglobal default_kernel_dbg = 'off' setglobal default_kernel_alt_dbg = 'off' for i in [$(*)] { setglobal dist = $(i) setglobal distname = $(i%%.txz) setglobal distname = $[echo $(distname) | tr '-' '_] setglobal distname = $[echo $(distname) | tr 'kernel.' 'kernel_] setglobal hash = $[sha256 -q $(i)] setglobal nfiles = $[tar tvf $(i) | wc -l | tr -d ' ] setglobal default = $[eval echo '$'{default_$(distname):-on}] setglobal desc = $[eval echo '"''$'{desc_$(distname)}'"'] match $(i) { with kernel-dbg.txz setglobal desc = $(desc_kernel_dbg) with kernel.*-dbg.txz setglobal desc = $[eval echo '"'$(desc_kernel_alt_dbg)'"'] setglobal desc = ""$(desc): $[eval echo $(i%%-dbg.txz) | cut -f 2 -d '.]"" setglobal default = $[eval echo '"'$(default_kernel_alt_dbg)'"'] with kernel.*.txz setglobal desc = $[eval echo '"'$(desc_kernel_alt)'"'] setglobal desc = ""$(desc): $[eval echo $(i%%.txz) | cut -f 2 -d '.]"" setglobal default = $[eval echo '"'$(default_kernel_alt)'"'] with * } printf "$(dist)\t$(hash)\t$(nfiles)\t$(distname)\t\"$(desc)\"\t$(default)\n" }