mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 04:18:05 +00:00
fix(shared-dirs): add plugins directory to shared structure symlinks
Address PR #15 review comments by ensuring plugins directory is properly handled in shared directory symlinking for both Bash and PowerShell implementations. Adds plugins to directory creation and symlink loops. Fixes: - https://github.com/kaitranntt/ccs/pull/15#discussion_r2553557063 - https://github.com/kaitranntt/ccs/pull/15#discussion_r2553557078
This commit is contained in:
@@ -981,10 +981,10 @@ link_shared_directories() {
|
||||
local shared_dir="$HOME/.ccs/shared"
|
||||
|
||||
# Ensure shared directories exist
|
||||
mkdir -p "$shared_dir"/{commands,skills,agents}
|
||||
mkdir -p "$shared_dir"/{commands,skills,agents,plugins}
|
||||
|
||||
# Create symlinks (remove existing first if present)
|
||||
for dir in commands skills agents; do
|
||||
for dir in commands skills agents plugins; do
|
||||
local link_path="$instance_path/$dir"
|
||||
local target_path="$shared_dir/$dir"
|
||||
|
||||
@@ -1003,7 +1003,7 @@ migrate_to_shared_structure() {
|
||||
# Check if migration is needed (shared dirs exist but are empty)
|
||||
if [[ -d "$shared_dir" ]]; then
|
||||
local needs_migration=false
|
||||
for dir in commands skills agents; do
|
||||
for dir in commands skills agents plugins; do
|
||||
if [[ ! -d "$shared_dir/$dir" ]] || [[ -z "$(ls -A "$shared_dir/$dir" 2>/dev/null)" ]]; then
|
||||
needs_migration=true
|
||||
break
|
||||
@@ -1014,7 +1014,7 @@ migrate_to_shared_structure() {
|
||||
fi
|
||||
|
||||
# Create shared directory
|
||||
mkdir -p "$shared_dir"/{commands,skills,agents}
|
||||
mkdir -p "$shared_dir"/{commands,skills,agents,plugins}
|
||||
|
||||
# Copy from ~/.claude/ (actual Claude CLI directory)
|
||||
local claude_dir="$HOME/.claude"
|
||||
@@ -1031,6 +1031,10 @@ migrate_to_shared_structure() {
|
||||
# Copy agents to shared (if exists)
|
||||
[[ -d "$claude_dir/agents" ]] && \
|
||||
cp -r "$claude_dir/agents"/* "$shared_dir/agents/" 2>/dev/null || true
|
||||
|
||||
# Copy plugins to shared (if exists)
|
||||
[[ -d "$claude_dir/plugins" ]] && \
|
||||
cp -r "$claude_dir/plugins"/* "$shared_dir/plugins/" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Update all instances to use symlinks
|
||||
|
||||
+10
-4
@@ -659,7 +659,7 @@ function Link-SharedDirectories {
|
||||
$SharedDir = "$env:USERPROFILE\.ccs\shared"
|
||||
|
||||
# Ensure shared directories exist
|
||||
@('commands', 'skills', 'agents') | ForEach-Object {
|
||||
@('commands', 'skills', 'agents', 'plugins') | ForEach-Object {
|
||||
$Dir = Join-Path $SharedDir $_
|
||||
if (-not (Test-Path $Dir)) {
|
||||
New-Item -ItemType Directory -Path $Dir -Force | Out-Null
|
||||
@@ -667,7 +667,7 @@ function Link-SharedDirectories {
|
||||
}
|
||||
|
||||
# Create symlinks (requires Windows Developer Mode or admin)
|
||||
@('commands', 'skills', 'agents') | ForEach-Object {
|
||||
@('commands', 'skills', 'agents', 'plugins') | ForEach-Object {
|
||||
$LinkPath = Join-Path $InstancePath $_
|
||||
$TargetPath = Join-Path $SharedDir $_
|
||||
|
||||
@@ -693,7 +693,7 @@ function Migrate-SharedStructure {
|
||||
# Check if migration is needed (shared dirs exist but are empty)
|
||||
if (Test-Path $SharedDir) {
|
||||
$NeedsMigration = $false
|
||||
foreach ($Dir in @('commands', 'skills', 'agents')) {
|
||||
foreach ($Dir in @('commands', 'skills', 'agents', 'plugins')) {
|
||||
$DirPath = Join-Path $SharedDir $Dir
|
||||
if (-not (Test-Path $DirPath) -or (Get-ChildItem $DirPath -ErrorAction SilentlyContinue).Count -eq 0) {
|
||||
$NeedsMigration = $true
|
||||
@@ -705,7 +705,7 @@ function Migrate-SharedStructure {
|
||||
}
|
||||
|
||||
# Create shared directory
|
||||
@('commands', 'skills', 'agents') | ForEach-Object {
|
||||
@('commands', 'skills', 'agents', 'plugins') | ForEach-Object {
|
||||
$Dir = Join-Path $SharedDir $_
|
||||
New-Item -ItemType Directory -Path $Dir -Force | Out-Null
|
||||
}
|
||||
@@ -731,6 +731,12 @@ function Migrate-SharedStructure {
|
||||
if (Test-Path $AgentsPath) {
|
||||
Copy-Item "$AgentsPath\*" -Destination "$SharedDir\agents\" -Recurse -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Copy plugins to shared (if exists)
|
||||
$PluginsPath = Join-Path $ClaudeDir "plugins"
|
||||
if (Test-Path $PluginsPath) {
|
||||
Copy-Item "$PluginsPath\*" -Destination "$SharedDir\plugins\" -Recurse -ErrorAction SilentlyContinue
|
||||
}
|
||||
}
|
||||
|
||||
# Update all instances to use symlinks
|
||||
|
||||
Reference in New Issue
Block a user