Merge pull request #58 from phjlljp/feat/session-start-config-check
feat: add SessionStart hook for config check
This commit is contained in:
@@ -21,5 +21,6 @@
|
||||
"prompts",
|
||||
"polymarket"
|
||||
],
|
||||
"skills": ["./"]
|
||||
"skills": ["./"],
|
||||
"hooks": ["./hooks/"]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"hooks": {
|
||||
"SessionStart": [
|
||||
{
|
||||
"matcher": "",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/check-config.sh",
|
||||
"timeout": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Check if last30days has any configuration source available.
|
||||
# Priority: .claude/last30days.env > ~/.config/last30days/.env > env vars
|
||||
|
||||
PROJECT_ENV=".claude/last30days.env"
|
||||
GLOBAL_ENV="$HOME/.config/last30days/.env"
|
||||
|
||||
# Helper: warn if file permissions are too open
|
||||
check_perms() {
|
||||
local file="$1"
|
||||
if [[ ! -f "$file" ]]; then return; fi
|
||||
local perms
|
||||
perms=$(stat -f '%Lp' "$file" 2>/dev/null || stat -c '%a' "$file" 2>/dev/null || echo "")
|
||||
if [[ -n "$perms" && "$perms" != "600" && "$perms" != "400" ]]; then
|
||||
echo "/last30days: WARNING — $file has permissions $perms (should be 600)."
|
||||
echo " Fix: chmod 600 $file"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check per-project config
|
||||
if [[ -f "$PROJECT_ENV" ]]; then
|
||||
check_perms "$PROJECT_ENV"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check global config
|
||||
if [[ -f "$GLOBAL_ENV" ]]; then
|
||||
check_perms "$GLOBAL_ENV"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if OPENAI_API_KEY is set in environment (minimum requirement)
|
||||
if [[ -n "${OPENAI_API_KEY:-}" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if SCRAPECREATORS_API_KEY is set (also sufficient)
|
||||
if [[ -n "${SCRAPECREATORS_API_KEY:-}" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# No config found — inform user
|
||||
cat <<'EOF'
|
||||
/last30days: No API keys configured.
|
||||
|
||||
Create .claude/last30days.env with your API keys, or create
|
||||
~/.config/last30days/.env globally. At minimum, SCRAPECREATORS_API_KEY
|
||||
or OPENAI_API_KEY is required. See the README for setup instructions.
|
||||
EOF
|
||||
Reference in New Issue
Block a user