Files
Team f20bc770f5 feat: add gitea-deploy skill, tools, and sdlc foreground service rule
- skills/gitea-deploy/: new skill for Gitea deployment automation
- tools/: shared utility scripts
- skills/sdlc/SKILL.md: add Foreground Service Rule for long-running
  processes (background start + readiness polling pattern)
2026-04-25 14:11:58 +08:00

39 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# kp-get.sh — 安全从 KeePassXC 数据库获取条目属性
# 用法: ./kp-get.sh "Entry Title" [Password|UserName|URL]
#
# 主密码优先级:
# 1. KEEPASS_MASTER 环境变量
# 2. 系统密钥环 (secret-tool, Linux desktop)
# 3. GPG 加密文件 (~/.keepass/.master.gpg)
# 4. 交互输入
set -euo pipefail
DB="${KEEPASS_DB:-$HOME/.keepass/passwords.kdbx}"
ENTRY="${1:?用法: $0 \"Entry Title\" [Password|UserName|URL]}"
ATTR="${2:-Password}"
if [[ -z "${KEEPASS_MASTER:-}" ]]; then
KEEPASS_MASTER="$(secret-tool lookup service keepassxc account default 2>/dev/null || true)"
fi
if [[ -z "${KEEPASS_MASTER:-}" && -f "$HOME/.keepass/.master.gpg" ]]; then
KEEPASS_MASTER="$(gpg -q -d "$HOME/.keepass/.master.gpg" 2>/dev/null || true)"
fi
if [[ -z "${KEEPASS_MASTER:-}" && -f "$HOME/.keepass/.master.enc" ]]; then
KEEPASS_MASTER="$(openssl enc -d -aes-256-cbc -pbkdf2 -in "$HOME/.keepass/.master.enc" 2>/dev/null || true)"
fi
if [[ -z "${KEEPASS_MASTER:-}" && -f "$HOME/.keepass/.master" ]]; then
KEEPASS_MASTER="$(cat "$HOME/.keepass/.master")"
fi
if [[ -z "${KEEPASS_MASTER:-}" ]]; then
read -rsp "Master password: " KEEPASS_MASTER
echo
fi
echo "$KEEPASS_MASTER" | keepassxc-cli show -q "$DB" "$ENTRY" -a "$ATTR"