159 lines
4.1 KiB
Bash
Executable File
159 lines
4.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#
|
|
# Extract All Documentation Data
|
|
#
|
|
# Orchestrates extraction from all available sources:
|
|
# - PHP source code
|
|
# - Extension configuration
|
|
# - TYPO3 configuration
|
|
# - Composer dependencies
|
|
# - Project files (README, CHANGELOG)
|
|
# - Build configurations (optional)
|
|
# - Repository metadata (optional)
|
|
#
|
|
|
|
set -e
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
# Script configuration
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SKILL_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
PROJECT_DIR="$(pwd)"
|
|
|
|
EXTRACTION_DIR="${PROJECT_DIR}/.claude/docs-extraction"
|
|
DATA_DIR="${EXTRACTION_DIR}/data"
|
|
CACHE_DIR="${EXTRACTION_DIR}/cache"
|
|
|
|
echo -e "${GREEN}=== TYPO3 Documentation Extraction ===${NC}"
|
|
echo
|
|
echo "Project: ${PROJECT_DIR}"
|
|
echo "Extraction Directory: ${EXTRACTION_DIR}"
|
|
echo
|
|
|
|
# Create directories
|
|
mkdir -p "${DATA_DIR}"
|
|
mkdir -p "${CACHE_DIR}"
|
|
|
|
# Extraction flags
|
|
EXTRACT_BUILD=false
|
|
EXTRACT_REPO=false
|
|
|
|
# Parse arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--build)
|
|
EXTRACT_BUILD=true
|
|
shift
|
|
;;
|
|
--repo)
|
|
EXTRACT_REPO=true
|
|
shift
|
|
;;
|
|
--all)
|
|
EXTRACT_BUILD=true
|
|
EXTRACT_REPO=true
|
|
shift
|
|
;;
|
|
-h|--help)
|
|
echo "Usage: $0 [OPTIONS]"
|
|
echo
|
|
echo "Options:"
|
|
echo " --build Include build configuration extraction (.github, phpunit.xml, etc.)"
|
|
echo " --repo Include repository metadata extraction (requires network)"
|
|
echo " --all Extract everything (build + repo)"
|
|
echo " -h, --help Show this help message"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo -e "${RED}Unknown option: $1${NC}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Core extractions (always run)
|
|
echo -e "${BLUE}Running core extractions...${NC}"
|
|
echo
|
|
|
|
# 1. PHP Code
|
|
echo -e "${YELLOW}→ Extracting PHP code...${NC}"
|
|
if "${SCRIPT_DIR}/extract-php.sh"; then
|
|
echo -e "${GREEN}✓ PHP extraction complete${NC}"
|
|
else
|
|
echo -e "${RED}✗ PHP extraction failed${NC}"
|
|
fi
|
|
echo
|
|
|
|
# 2. Extension Configuration
|
|
echo -e "${YELLOW}→ Extracting extension configuration...${NC}"
|
|
if "${SCRIPT_DIR}/extract-extension-config.sh"; then
|
|
echo -e "${GREEN}✓ Extension config extraction complete${NC}"
|
|
else
|
|
echo -e "${RED}✗ Extension config extraction failed${NC}"
|
|
fi
|
|
echo
|
|
|
|
# 3. Composer Dependencies
|
|
echo -e "${YELLOW}→ Extracting composer dependencies...${NC}"
|
|
if "${SCRIPT_DIR}/extract-composer.sh"; then
|
|
echo -e "${GREEN}✓ Composer extraction complete${NC}"
|
|
else
|
|
echo -e "${RED}✗ Composer extraction failed${NC}"
|
|
fi
|
|
echo
|
|
|
|
# 4. Project Files
|
|
echo -e "${YELLOW}→ Extracting project files...${NC}"
|
|
if "${SCRIPT_DIR}/extract-project-files.sh"; then
|
|
echo -e "${GREEN}✓ Project files extraction complete${NC}"
|
|
else
|
|
echo -e "${RED}✗ Project files extraction failed${NC}"
|
|
fi
|
|
echo
|
|
|
|
# Optional extractions
|
|
if [ "$EXTRACT_BUILD" = true ]; then
|
|
echo -e "${BLUE}Running build configuration extraction...${NC}"
|
|
echo
|
|
|
|
echo -e "${YELLOW}→ Extracting build configs...${NC}"
|
|
if "${SCRIPT_DIR}/extract-build-configs.sh"; then
|
|
echo -e "${GREEN}✓ Build config extraction complete${NC}"
|
|
else
|
|
echo -e "${RED}✗ Build config extraction failed${NC}"
|
|
fi
|
|
echo
|
|
fi
|
|
|
|
if [ "$EXTRACT_REPO" = true ]; then
|
|
echo -e "${BLUE}Running repository metadata extraction...${NC}"
|
|
echo
|
|
|
|
echo -e "${YELLOW}→ Extracting repository metadata...${NC}"
|
|
if "${SCRIPT_DIR}/extract-repo-metadata.sh"; then
|
|
echo -e "${GREEN}✓ Repository metadata extraction complete${NC}"
|
|
else
|
|
echo -e "${RED}✗ Repository metadata extraction failed (network or auth issue?)${NC}"
|
|
fi
|
|
echo
|
|
fi
|
|
|
|
# Summary
|
|
echo -e "${GREEN}=== Extraction Complete ===${NC}"
|
|
echo
|
|
echo "Extracted data saved to: ${DATA_DIR}"
|
|
echo
|
|
echo "Next steps:"
|
|
echo "1. Review extracted data: ls -lh ${DATA_DIR}"
|
|
echo "2. Run gap analysis: ${SCRIPT_DIR}/analyze-docs.sh"
|
|
echo "3. Generate RST templates: ${SCRIPT_DIR}/generate-templates.sh"
|
|
echo "4. Review templates: Documentation/GENERATED/"
|
|
echo
|