166f36c36SLexi Winter#! /bin/sh 266f36c36SLexi Winter 366f36c36SLexi Winter# Generate metapackage sets. We do this by examining the annotations field 466f36c36SLexi Winter# of the packages we previously built. 566f36c36SLexi Winter 666f36c36SLexi Winterset -e 766f36c36SLexi Winter 866f36c36SLexi Winterif [ $# -lt 3 ]; then 966f36c36SLexi Winter printf >&2 'usage: %s <srcdir> <wstagedir> <repodir>\n' "$0" 1066f36c36SLexi Winter exit 1 1166f36c36SLexi Winterfi 1266f36c36SLexi Winter 1366f36c36SLexi Wintersrcdir="$1"; shift 1466f36c36SLexi Winterwstagedir="$1"; shift 1566f36c36SLexi Winterrepodir="$1"; shift 1666f36c36SLexi Winter# Everything after the first three arguments is UCL variables we pass to 1766f36c36SLexi Winter# generate-set-ucl.lua. 1866f36c36SLexi WinterUCL_VARS="$@" 1966f36c36SLexi Winter 2066f36c36SLexi Winterfor pkg in "$repodir"/*.pkg; do 2166f36c36SLexi Winter # If the package name doesn't containing a '-', then it's 2266f36c36SLexi Winter # probably data.pkg or packagesite.pkg, which are not real 2366f36c36SLexi Winter # packages. 2466f36c36SLexi Winter { echo "$pkg" | grep -q '-'; } || continue 2566f36c36SLexi Winter 2666f36c36SLexi Winter set -- $(pkg query -F "$pkg" '%At %n %Av' | grep '^set ') 2766f36c36SLexi Winter pkgname="$2" 28*9b7bddfdSLexi Winter sets="$(echo "$3" | tr , ' ')" 29*9b7bddfdSLexi Winter for set in $sets; do 3066f36c36SLexi Winter SETS="$SETS $set" 3166f36c36SLexi Winter setvar="$(echo "$set" | tr - _)" 3266f36c36SLexi Winter eval PKGS_${setvar}=\"\$PKGS_${setvar} $pkgname\" 3366f36c36SLexi Winter done 34*9b7bddfdSLexi Winterdone 3566f36c36SLexi Winter 3666f36c36SLexi Winterfor set in $(echo $SETS | tr ' ' '\n' | sort | uniq); do 3766f36c36SLexi Winter setvar="$(echo "$set" | tr - _)" 3866f36c36SLexi Winter eval deps=\"\$PKGS_${setvar}\" 3966f36c36SLexi Winter 4066f36c36SLexi Winter "${srcdir}/release/packages/generate-set-ucl.lua" \ 4166f36c36SLexi Winter "${srcdir}/release/packages/set-template.ucl" \ 4266f36c36SLexi Winter PKGNAME "$set" \ 4366f36c36SLexi Winter SET_DEPENDS "$deps" \ 4466f36c36SLexi Winter UCLFILES "${srcdir}/release/packages/sets" \ 4566f36c36SLexi Winter $UCL_VARS \ 4666f36c36SLexi Winter > "${wstagedir}/set-${set}.ucl" 4766f36c36SLexi Winterdone 48