ai-control: Linux-Testskripte (setup-config, start-claude)

This commit is contained in:
marcus.hinz
2026-07-05 19:07:36 +02:00
parent f59368fb41
commit 8567c4c3b2
2 changed files with 73 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env bash
# Bereitet ~/.config/ai-control auf einer frischen Maschine vor — dasselbe
# Layout, das die App anlegt:
# settings.json App-Settings (claudeCommand; poolSyncDir ungesetzt = lokal)
# projects.json Projekt-Registry (Name -> Pfad, ~-relativ)
# icons/ gemeinsames Icon-Verzeichnis
# pools/<pool>/ oauth-Pool: pool.json, settings.json, CLAUDE.md
# Vorhandene Dateien bleiben unangetastet.
#
# Aufruf: setup-config.sh [pool-id] (Default: private)
set -euo pipefail
pool="${1:-private}"
config="$HOME/.config/ai-control"
pooldir="$config/pools/$pool"
mkdir -p "$config/icons" "$pooldir"
[ -f "$config/settings.json" ] || cat > "$config/settings.json" <<'EOF'
{
"claudeCommand": "claude"
}
EOF
[ -f "$config/projects.json" ] || echo '{}' > "$config/projects.json"
[ -f "$pooldir/pool.json" ] || cat > "$pooldir/pool.json" <<EOF
{
"name": "$pool",
"credentialType": "oauth"
}
EOF
# UI-Defaults wie init_pool_config: Prompt-Vorschläge/Away-Summary aus
[ -f "$pooldir/settings.json" ] || cat > "$pooldir/settings.json" <<'EOF'
{
"promptSuggestionEnabled": false,
"awaySummaryEnabled": false
}
EOF
[ -f "$pooldir/CLAUDE.md" ] || : > "$pooldir/CLAUDE.md"
echo "fertig: $config (Pool: $pool)"
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Startet claude für ein Projekt genau wie das eingebaute ai-control-Terminal:
# cwd = Projektordner (Registry ~/.config/ai-control/projects.json),
# CLAUDE_CONFIG_DIR = Pool-Ordner (Zuordnung in <projekt>/ai-control.json),
# Kommando aus ~/.config/ai-control/settings.json (claudeCommand, Default claude).
set -euo pipefail
project="$1"
config="$HOME/.config/ai-control"
dir=$(jq -r --arg p "$project" '.[$p] // empty' "$config/projects.json")
if [ -z "$dir" ]; then
echo "Projekt nicht registriert: $project" >&2
exit 1
fi
dir="${dir/#\~/$HOME}"
cmd=$(jq -r '.claudeCommand // "claude"' "$config/settings.json")
pool=""
if [ -f "$dir/ai-control.json" ]; then
pool=$(jq -r '.pool // empty' "$dir/ai-control.json")
fi
if [ -n "$pool" ]; then
export CLAUDE_CONFIG_DIR="$config/pools/$pool"
fi
cd "$dir"
exec "${SHELL:-/bin/bash}" -ic "$cmd"