mirror of
https://fastgit.cc/github.com/HKUDS/CLI-Anything
synced 2026-04-21 05:10:42 +08:00
107 lines
3.9 KiB
Bash
Executable File
107 lines
3.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# cli-anything plugin setup script
|
|
|
|
set -euo pipefail
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Windows bash environment check (helps avoid cryptic cygpath errors later)
|
|
is_windows_bash() {
|
|
case "$(uname -s 2>/dev/null)" in
|
|
CYGWIN*|MINGW*|MSYS*) return 0 ;;
|
|
esac
|
|
return 1
|
|
}
|
|
|
|
if is_windows_bash && ! command -v cygpath >/dev/null 2>&1; then
|
|
echo -e "${RED}✗${NC} Windows bash environment detected but 'cygpath' was not found."
|
|
echo -e "${YELLOW} Please install Git for Windows (Git Bash) or use WSL, then rerun this script.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Plugin info
|
|
PLUGIN_NAME="cli-anything"
|
|
PLUGIN_VERSION="1.0.0"
|
|
|
|
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
echo -e "${BLUE} cli-anything Plugin v${PLUGIN_VERSION}${NC}"
|
|
echo -e "${BLUE} Build powerful CLI interfaces for any GUI application${NC}"
|
|
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
echo ""
|
|
|
|
# Check if HARNESS.md exists
|
|
HARNESS_PATH="/root/cli-anything/HARNESS.md"
|
|
if [ ! -f "$HARNESS_PATH" ]; then
|
|
echo -e "${YELLOW}⚠️ HARNESS.md not found at $HARNESS_PATH${NC}"
|
|
echo -e "${YELLOW} The cli-anything methodology requires HARNESS.md${NC}"
|
|
echo -e "${YELLOW} You can create it or specify a custom path with --harness-path${NC}"
|
|
echo ""
|
|
fi
|
|
|
|
# Check Python version
|
|
if command -v python3 &> /dev/null; then
|
|
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
|
|
echo -e "${GREEN}✓${NC} Python 3 detected: ${PYTHON_VERSION}"
|
|
else
|
|
echo -e "${RED}✗${NC} Python 3 not found. Please install Python 3.10+"
|
|
exit 1
|
|
fi
|
|
|
|
# Check for required Python packages
|
|
echo ""
|
|
echo "Checking Python dependencies..."
|
|
|
|
check_package() {
|
|
local package=$1
|
|
if python3 -c "import $package" 2>/dev/null; then
|
|
echo -e "${GREEN}✓${NC} $package installed"
|
|
return 0
|
|
else
|
|
echo -e "${YELLOW}⚠${NC} $package not installed"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
MISSING_PACKAGES=()
|
|
|
|
check_package "click" || MISSING_PACKAGES+=("click")
|
|
check_package "pytest" || MISSING_PACKAGES+=("pytest")
|
|
|
|
if [ ${#MISSING_PACKAGES[@]} -gt 0 ]; then
|
|
echo ""
|
|
echo -e "${YELLOW}Missing packages: ${MISSING_PACKAGES[*]}${NC}"
|
|
echo -e "${YELLOW}Install with: pip install ${MISSING_PACKAGES[*]}${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
echo -e "${GREEN} Plugin installed successfully!${NC}"
|
|
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
echo ""
|
|
echo "Available commands:"
|
|
echo ""
|
|
echo -e " ${BLUE}/cli-anything${NC} <path-or-repo> - Build complete CLI harness"
|
|
echo -e " ${BLUE}/cli-anything:refine${NC} <path> [focus] - Refine existing harness"
|
|
echo -e " ${BLUE}/cli-anything:test${NC} <path-or-repo> - Run tests and update TEST.md"
|
|
echo -e " ${BLUE}/cli-anything:validate${NC} <path-or-repo> - Validate against standards"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo ""
|
|
echo -e " ${BLUE}/cli-anything${NC} /home/user/gimp"
|
|
echo -e " ${BLUE}/cli-anything:refine${NC} /home/user/blender \"particle systems\""
|
|
echo -e " ${BLUE}/cli-anything:test${NC} /home/user/inkscape"
|
|
echo -e " ${BLUE}/cli-anything:validate${NC} /home/user/audacity"
|
|
echo ""
|
|
echo "Documentation:"
|
|
echo ""
|
|
echo " HARNESS.md: /root/cli-anything/HARNESS.md"
|
|
echo " Plugin README: Use '/help cli-anything' for more info"
|
|
echo ""
|
|
echo -e "${GREEN}Ready to build CLI harnesses! 🚀${NC}"
|
|
echo ""
|