29 lines
1 KiB
Bash
Executable file
29 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "${root}"
|
|
|
|
# Forgejo CLI: `fj`
|
|
#
|
|
# Auth token source order:
|
|
# 1) CODEBERG_TOKEN env var
|
|
# 2) `agenix -d secrets/codeberg-token.age` (optional)
|
|
|
|
rules_file="${EVERY_CHANNEL_AGE_RULES_FILE:-./secrets.nix}"
|
|
identity_file="${EVERY_CHANNEL_AGE_IDENTITY_FILE:-$HOME/.config/every.channel/keys/founder_ed25519}"
|
|
|
|
if [[ -z "${CODEBERG_TOKEN:-}" && -f secrets/codeberg-token.age && -x "$(command -v agenix)" ]]; then
|
|
export CODEBERG_TOKEN
|
|
CODEBERG_TOKEN="$(RULES="${rules_file}" agenix -d secrets/codeberg-token.age -i "${identity_file}")"
|
|
fi
|
|
|
|
if [[ -z "${CODEBERG_TOKEN:-}" ]]; then
|
|
echo "error: CODEBERG_TOKEN is not set" >&2
|
|
echo "hint: set CODEBERG_TOKEN or create secrets/codeberg-token.age via agenix" >&2
|
|
exit 2
|
|
fi
|
|
|
|
# Avoid passing the token on the command line (shows up in process listings); use stdin.
|
|
printf "%s" "${CODEBERG_TOKEN}" | fj -H https://codeberg.org auth add-key every-channel
|
|
echo "fj configured. Try: fj -H https://codeberg.org whoami"
|