1#!/usr/bin/env bash
2
3# SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
4#
5# SPDX-License-Identifier: CC0-1.0
6
7set -euo pipefail
8
9valid_packages="answer, handoff, personas, questionnaire"
10
11resolve_package_dir() {
12 case "$1" in
13 answer|pi-answer|@amolith/pi-answer) printf '%s\n' packages/answer ;;
14 handoff|pi-handoff|@amolith/pi-handoff) printf '%s\n' packages/handoff ;;
15 personas|pi-personas|@amolith/pi-personas) printf '%s\n' packages/personas ;;
16 questionnaire|pi-questionnaire|@amolith/pi-questionnaire) printf '%s\n' packages/questionnaire ;;
17 *)
18 echo "Error: unknown package '$1'" >&2
19 echo "Valid packages: $valid_packages" >&2
20 exit 1
21 ;;
22 esac
23}
24
25if [[ $# -eq 0 ]]; then
26 echo "Error: at least one package is required" >&2
27 echo "Valid packages: $valid_packages" >&2
28 exit 1
29fi
30
31results=()
32for package in "$@"; do
33 dir=$(resolve_package_dir "$package")
34 if [[ ${#results[@]} -gt 0 ]]; then
35 for existing in "${results[@]}"; do
36 if [[ "$existing" == "$dir" ]]; then
37 echo "Error: multiple selectors resolved to '$dir' (duplicate triggered by '$package')" >&2
38 exit 1
39 fi
40 done
41 fi
42 results+=("$dir")
43done
44
45printf '%s\n' "${results[@]}"