#!/usr/bin/env bash # SPDX-FileCopyrightText: Amolith # # SPDX-License-Identifier: CC0-1.0 set -euo pipefail valid_packages="answer, handoff, personas, questionnaire" resolve_package_dir() { case "$1" in answer|pi-answer|@amolith/pi-answer) printf '%s\n' packages/answer ;; handoff|pi-handoff|@amolith/pi-handoff) printf '%s\n' packages/handoff ;; personas|pi-personas|@amolith/pi-personas) printf '%s\n' packages/personas ;; questionnaire|pi-questionnaire|@amolith/pi-questionnaire) printf '%s\n' packages/questionnaire ;; *) echo "Error: unknown package '$1'" >&2 echo "Valid packages: $valid_packages" >&2 exit 1 ;; esac } if [[ $# -eq 0 ]]; then echo "Error: at least one package is required" >&2 echo "Valid packages: $valid_packages" >&2 exit 1 fi results=() for package in "$@"; do dir=$(resolve_package_dir "$package") if [[ ${#results[@]} -gt 0 ]]; then for existing in "${results[@]}"; do if [[ "$existing" == "$dir" ]]; then echo "Error: multiple selectors resolved to '$dir' (duplicate triggered by '$package')" >&2 exit 1 fi done fi results+=("$dir") done printf '%s\n' "${results[@]}"