fix(mosaic): bind lifecycle across storage and runtime
This commit is contained in:
@@ -46,7 +46,29 @@ if [ -n "$ident" ]; then
|
||||
esac
|
||||
if [ -n "$idpfx" ]; then
|
||||
idtok="$HOME/.config/mosaic/secrets/gitea-tokens/${idpfx}-${ident}.token"
|
||||
idcred="$HOME/.config/mosaic/secrets/gitea-tokens/${idpfx}-${ident}.credential.json"
|
||||
if [ -r "$idcred" ]; then
|
||||
token=$(python3 - "$idcred" <<'PY'
|
||||
import json, sys
|
||||
value = json.load(open(sys.argv[1], encoding="utf-8")).get("token")
|
||||
if not isinstance(value, str) or not value or any(ch.isspace() for ch in value):
|
||||
raise SystemExit(1)
|
||||
print(value)
|
||||
PY
|
||||
) || exit 1
|
||||
if [ "${MOSAIC_CREDENTIAL_TRACE:-}" = 1 ]; then
|
||||
printf 'MOSAIC_CREDENTIAL_RESOLUTION outcome=ok reason=credential-resolved identity=%s host=%s shared_path_entered=false source=git-credential-mosaic\n' \
|
||||
"$ident" "$host" >&2
|
||||
fi
|
||||
echo "username=${ident}"
|
||||
echo "password=${token}"
|
||||
exit 0
|
||||
fi
|
||||
if [ -r "$idtok" ]; then
|
||||
if [ "${MOSAIC_CREDENTIAL_TRACE:-}" = 1 ]; then
|
||||
printf 'MOSAIC_CREDENTIAL_RESOLUTION outcome=ok reason=credential-resolved identity=%s host=%s shared_path_entered=false source=git-credential-mosaic\n' \
|
||||
"$ident" "$host" >&2
|
||||
fi
|
||||
echo "username=${ident}"
|
||||
echo "password=$(cat "$idtok")"
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user