#!/bin/sh set -eu PLAT= main() { PLAT="$(sed '1{s/^config-\([^ ][^ ]*\) (.*$/\1/;};1!q;' changelog)" make_common_pkg make_base_pkg make_build_time_pkgs make_run_time_pkgs } info() { local fmt="${1}" shift 1 printf "ppt-mkpkgs: ${fmt}\n" "${@}" } make_common_pkg() { # Make "-common" package to provide source package documentation files. mkdir -p "config-${PLAT}-common.pkg" cat >"config-${PLAT}-common.pkg/control" <<-EOF Architecture: all Platform: all Description: "${PLAT}" platform configuration - common files EOF >"config-${PLAT}-common.pkg/docs" info 'Metadata for package "%s" generated.' "config-${PLAT}-common" } make_base_pkg() { # Make a "config-base" package to depend on packages to be automatically # installed. mkdir -p "config-base.pkg" cat >"config-base.pkg/control" <<-EOF Architecture: all Platform: ${PLAT} Essential: yes Depends: config-${PLAT}-common (= \${Binary-Version}), \${Config-Base-Depends} Description: "${PLAT}" platform configuration - base package EOF info 'Metadata for package "%s" generated.' "config-base" } make_build_time_pkgs() { local pkg= # Make each config-*-* package. for pkg in src/build/*; do pkg="${pkg#src/build/}" mkdir -p "config-${pkg}-${PLAT}.pkg" cat >"config-${pkg}-${PLAT}.pkg/control" <<-EOF Architecture: all Platform: all Depends: config-${PLAT}-common (= \${Binary-Version}) Description: "${PLAT}" platform configuration for ${pkg} EOF info 'Metadata for package "%s" generated.' \ "config-${pkg}-${PLAT}" done } make_run_time_pkgs() { local pkg= # Make each config-* package. for pkg in src/run/*; do pkg="${pkg#src/run/}" mkdir -p "config-${pkg}.pkg" cat >"config-${pkg}.pkg/control" <<-EOF Architecture: all Platform: ${PLAT} Depends: config-${PLAT}-common (= \${Binary-Version}) Description: "${PLAT}" platform configuration for ${pkg} EOF info 'Metadata for package "%s" generated.' \ "config-${pkg}" done } main "${@}"