Рыба проекта. Минимальная функциональность
This commit is contained in:
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Configuration
|
||||
REPO_URL="https://git.tswf.io/ai-agents/ai-agent-skills.git"
|
||||
TARGET_DIR=".agents/skills"
|
||||
|
||||
# Get script directory for relative paths
|
||||
if [ -n "${BASH_SOURCE[0]+x}" ]; then
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
fi
|
||||
|
||||
# Create target directory if it doesn't exist
|
||||
mkdir -p "$TARGET_DIR"
|
||||
|
||||
# Create temporary directory
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
echo "Created temporary directory: $TEMP_DIR"
|
||||
|
||||
# Ensure cleanup on exit
|
||||
cleanup() {
|
||||
if [ -d "$TEMP_DIR" ]; then
|
||||
rm -rf "$TEMP_DIR"
|
||||
echo "Cleaned up temporary directory"
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
# Clone repository
|
||||
echo "Cloning repository $REPO_URL..."
|
||||
git clone --depth 1 "$REPO_URL" "$TEMP_DIR/repo"
|
||||
|
||||
# Check if clone was successful
|
||||
if [ ! -d "$TEMP_DIR/repo" ]; then
|
||||
echo "Error: Failed to clone repository"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find and process skills (subdirectories in the cloned repo)
|
||||
SKILLS_FOUND=0
|
||||
for skill_path in "$TEMP_DIR/repo/skills"/*/; do
|
||||
# Skip if no directories found (glob returns literal pattern if no match)
|
||||
[ -d "$skill_path" ] || continue
|
||||
|
||||
skill_name=$(basename "$skill_path")
|
||||
target_skill_path="$TARGET_DIR/$skill_name"
|
||||
|
||||
# Remove existing skill if present
|
||||
if [ -e "$target_skill_path" ]; then
|
||||
echo "Removing existing skill: $skill_name"
|
||||
rm -rf "$target_skill_path"
|
||||
fi
|
||||
|
||||
# Copy new skill
|
||||
echo "Installing skill: $skill_name"
|
||||
cp -r "$skill_path" "$target_skill_path"
|
||||
|
||||
SKILLS_FOUND=$((SKILLS_FOUND + 1))
|
||||
done
|
||||
|
||||
if [ "$SKILLS_FOUND" -eq 0 ]; then
|
||||
echo "Warning: No skills found in repository"
|
||||
else
|
||||
echo "Successfully synchronized $SKILLS_FOUND skill(s) to $TARGET_DIR"
|
||||
fi
|
||||
Reference in New Issue
Block a user