#!/bin/bash
#
# bl-qrkey — DEPRECATED compatibility shim.
#
# This library was renamed to bl-pgpkey on 2026-07-14 (it grew well beyond
# QR codes: token PIN/Admin codes, passphrase, cardholder metadata, …).
# This thin wrapper keeps the old name working for existing callers
# (pgpid-qrscan sources it; djibian-onboarding runs it as a program) and
# will be removed once they have migrated.
#
# Copyright © 2026 Jean-Jacques Brucker (u4=sRyUhEbNU5OwyLEjfSwaXAe_42.17-002.76) <jjbrucker@foopgp.org>
# Copyright © 2026 Mnêmê (u5001777236237.945e_43.30_005.38) <mneme@foopgp.org>
#
# SPDX-License-Identifier: LGPL-3.0-only

_bl_qrkey_dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"

# Completion: register bl-pgpkey's completion function under this name too.
if [[ "$1" == --bash-completion ]] ; then
	source "$_bl_qrkey_dir/bl-pgpkey" --bash-completion
	complete -F _bl_pgpkey_completion "$(basename "$BASH_SOURCE")" "$BASH_SOURCE" 2>/dev/null
	return 0
fi

# Program mode (e.g. `bl-qrkey change_token_code …`): hand over to bl-pgpkey.
if [[ "$BASH_SOURCE" == "$0" ]] ; then
	printf "%s: Warning: renamed to 'bl-pgpkey' — please migrate.\n" "$(basename "$0")" >&2
	exec "$_bl_qrkey_dir/bl-pgpkey" "$@"
fi

# Sourced mode (e.g. `. bl-qrkey --`): load bl-pgpkey with the same options,
# then expose bl_qrkey_* aliases delegating to their bl_pgpkey_* counterparts.
source "$_bl_qrkey_dir/bl-pgpkey" "$@"
_bl_qrkey_rc=$?

# Only announce the deprecation once per shell, and not while merely probing
# --version/--help (RETVAL 1 means an option handler already returned).
if [[ -z "$_BL_QRKEY_WARNED" ]] && [[ "$_bl_qrkey_rc" != 1 ]] ; then
	printf "bl-qrkey: Warning: sourced under a deprecated name; use bl-pgpkey.\n" >&2
	_BL_QRKEY_WARNED=1
fi

for _bl_qrkey_f in "${BL_PGPKEY_FUNCTIONS[@]}" ; do
	eval "bl_qrkey_${_bl_qrkey_f#bl_pgpkey_}() { ${_bl_qrkey_f} \"\$@\" ; }"
done
unset _bl_qrkey_f

# Legacy constant aliases (bl_pgpkey_* set them readonly; mirror the values).
BL_QRKEY_NAME=$BL_PGPKEY_NAME
BL_QRKEY_VERSION="0.4.2-1"
BL_QRKEY_FUNCTIONS=("${BL_PGPKEY_FUNCTIONS[@]/#bl_pgpkey_/bl_qrkey_}")

return $_bl_qrkey_rc
