another claude code statusline
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 51 lines 1.4 kB view raw
1#!/usr/bin/env bash 2set -euo pipefail 3 4SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" 5KLAUS_PATH="${SCRIPT_DIR}/klaus.sh" 6SETTINGS_FILE="${HOME}/.claude/settings.json" 7 8if ! command -v jq &>/dev/null; then 9 echo "error: jq is required. install it first." 10 exit 1 11fi 12 13chmod +x "$KLAUS_PATH" 14 15mkdir -p "$(dirname "$SETTINGS_FILE")" 16 17if [[ -f "$SETTINGS_FILE" ]]; then 18 # warn if status line already configured 19 EXISTING=$(jq -r '.statusLine.command // empty' "$SETTINGS_FILE") 20 if [[ -n "$EXISTING" && "$EXISTING" != "$KLAUS_PATH" ]]; then 21 echo "warning: statusLine already set to: $EXISTING" 22 printf "overwrite? [y/N] " 23 read -r REPLY 24 if [[ ! "$REPLY" =~ ^[Yy]$ ]]; then 25 echo "aborted" 26 exit 0 27 fi 28 fi 29 30 # backup 31 cp "$SETTINGS_FILE" "${SETTINGS_FILE}.bak" 32 33 UPDATED=$(jq --arg cmd "$KLAUS_PATH" '.statusLine = {"type": "command", "command": $cmd}' "$SETTINGS_FILE") 34else 35 UPDATED=$(jq -n --arg cmd "$KLAUS_PATH" '{"statusLine": {"type": "command", "command": $cmd}}') 36fi 37 38# validate jq output before writing 39if ! echo "$UPDATED" | jq empty 2>/dev/null; then 40 echo "error: failed to produce valid json" 41 exit 1 42fi 43 44# atomic write via temp file 45TMP=$(mktemp "${SETTINGS_FILE}.XXXXXX") 46echo "$UPDATED" >"$TMP" 47mv "$TMP" "$SETTINGS_FILE" 48 49echo "installed klaus → ${KLAUS_PATH}" 50[[ -f "${SETTINGS_FILE}.bak" ]] && echo "backup saved → ${SETTINGS_FILE}.bak" 51echo "restart claude code to activate"