install.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/bin/bash
  2. # claude-mods installer for Linux/macOS
  3. # Creates symlinks to Claude Code directories
  4. set -e
  5. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. CLAUDE_DIR="$HOME/.claude"
  7. echo "Installing claude-mods..."
  8. echo "Source: $SCRIPT_DIR"
  9. echo "Target: $CLAUDE_DIR"
  10. echo ""
  11. # Create Claude directories if they don't exist
  12. mkdir -p "$CLAUDE_DIR/commands"
  13. mkdir -p "$CLAUDE_DIR/skills"
  14. mkdir -p "$CLAUDE_DIR/agents"
  15. # Install commands
  16. echo "Installing commands..."
  17. for cmd_dir in "$SCRIPT_DIR/commands"/*/; do
  18. if [ -d "$cmd_dir" ]; then
  19. cmd_name=$(basename "$cmd_dir")
  20. # Look for the main .md file
  21. if [ -f "$cmd_dir/$cmd_name.md" ]; then
  22. target="$CLAUDE_DIR/commands/$cmd_name.md"
  23. if [ -L "$target" ] || [ -f "$target" ]; then
  24. echo " Updating: $cmd_name.md"
  25. rm -f "$target"
  26. else
  27. echo " Installing: $cmd_name.md"
  28. fi
  29. ln -s "$cmd_dir/$cmd_name.md" "$target"
  30. fi
  31. fi
  32. done
  33. # Install skills
  34. echo "Installing skills..."
  35. for skill_dir in "$SCRIPT_DIR/skills"/*/; do
  36. if [ -d "$skill_dir" ]; then
  37. skill_name=$(basename "$skill_dir")
  38. target="$CLAUDE_DIR/skills/$skill_name"
  39. if [ -L "$target" ] || [ -d "$target" ]; then
  40. echo " Updating: $skill_name"
  41. rm -rf "$target"
  42. else
  43. echo " Installing: $skill_name"
  44. fi
  45. ln -s "$skill_dir" "$target"
  46. fi
  47. done
  48. # Install agents
  49. echo "Installing agents..."
  50. for agent_file in "$SCRIPT_DIR/agents"/*.md; do
  51. if [ -f "$agent_file" ]; then
  52. agent_name=$(basename "$agent_file")
  53. target="$CLAUDE_DIR/agents/$agent_name"
  54. if [ -L "$target" ] || [ -f "$target" ]; then
  55. echo " Updating: $agent_name"
  56. rm -f "$target"
  57. else
  58. echo " Installing: $agent_name"
  59. fi
  60. ln -s "$agent_file" "$target"
  61. fi
  62. done
  63. echo ""
  64. echo "Installation complete!"
  65. echo ""
  66. echo "Installed to:"
  67. echo " Commands: $CLAUDE_DIR/commands/"
  68. echo " Skills: $CLAUDE_DIR/skills/"
  69. echo " Agents: $CLAUDE_DIR/agents/"