chore: normalize all tracked files to LF line endings

Mechanical application of the `.gitattributes` rules from the prior commit.
All 50 files differ only in line endings — verified by
`git diff --cached --ignore-all-space` being empty.

Before: main had 42 CRLF + 27 LF Python files plus mixed-ending in YAML,
templates, and shell scripts. After: every text file is LF (except the
Windows-native *.ps1, *.bat scripts which remain CRLF per gitattributes).

This eliminates the noisy-diff failure mode seen in PR #102, where a
small logic change produced a 918-line diff due to whole-file CRLF→LF
conversion.
This commit is contained in:
Eugene Mikhantyev
2026-04-18 15:23:00 +01:00
parent 2c35ff40a7
commit bfc25639c2
50 changed files with 18167 additions and 18167 deletions

View File

@@ -1,165 +1,165 @@
#!/bin/bash
# KiCAD MCP Server - Linux Installation Script
# Supports Ubuntu/Debian-based distributions
set -e # Exit on error
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Print colored messages
print_info() { echo -e "${BLUE}${NC} $1"; }
print_success() { echo -e "${GREEN}${NC} $1"; }
print_warning() { echo -e "${YELLOW}${NC} $1"; }
print_error() { echo -e "${RED}${NC} $1"; }
# Header
echo ""
echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ KiCAD MCP Server - Linux Installation ║"
echo "║ ║"
echo "║ This script will install: ║"
echo "║ - KiCAD 9.0 ║"
echo "║ - Node.js 20.x ║"
echo "║ - Python dependencies ║"
echo "║ - Build the TypeScript server ║"
echo "╚═══════════════════════════════════════════════════════════════╝"
echo ""
# Check if running on Linux
if [[ "$OSTYPE" != "linux-gnu"* ]]; then
print_error "This script is for Linux only. Detected: $OSTYPE"
exit 1
fi
# Check for Ubuntu/Debian
if ! command -v apt-get &> /dev/null; then
print_warning "This script is optimized for Ubuntu/Debian"
print_warning "For other distributions, please install manually"
read -p "Continue anyway? (y/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
# Function to check if command exists
command_exists() {
command -v "$1" &> /dev/null
}
# Step 1: Install KiCAD 9.0
print_info "Step 1/5: Installing KiCAD 9.0..."
if command_exists kicad; then
KICAD_VERSION=$(kicad-cli version 2>/dev/null | head -n 1 || echo "unknown")
print_success "KiCAD is already installed: $KICAD_VERSION"
else
print_info "Adding KiCAD PPA and installing..."
sudo add-apt-repository --yes ppa:kicad/kicad-9.0-releases
sudo apt-get update
sudo apt-get install -y kicad kicad-libraries
print_success "KiCAD 9.0 installed"
fi
# Verify KiCAD Python module
print_info "Verifying KiCAD Python module..."
if python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())" 2>/dev/null; then
PCBNEW_VERSION=$(python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())")
print_success "KiCAD Python module (pcbnew) found: $PCBNEW_VERSION"
else
print_warning "KiCAD Python module (pcbnew) not found in default Python path"
print_warning "You may need to set PYTHONPATH manually"
fi
# Step 2: Install Node.js
print_info "Step 2/5: Installing Node.js 20.x..."
if command_exists node; then
NODE_VERSION=$(node --version)
MAJOR_VERSION=$(echo $NODE_VERSION | cut -d'.' -f1 | sed 's/v//')
if [ "$MAJOR_VERSION" -ge 18 ]; then
print_success "Node.js is already installed: $NODE_VERSION"
else
print_warning "Node.js version is too old: $NODE_VERSION (need 18+)"
print_info "Installing Node.js 20.x..."
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
print_success "Node.js updated"
fi
else
print_info "Installing Node.js 20.x..."
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
print_success "Node.js installed: $(node --version)"
fi
# Step 3: Install Python dependencies
print_info "Step 3/5: Installing Python dependencies..."
if [ -f "requirements.txt" ]; then
pip3 install --user -r requirements.txt
print_success "Python dependencies installed"
else
print_warning "requirements.txt not found - skipping Python dependencies"
fi
# Step 4: Install Node.js dependencies
print_info "Step 4/5: Installing Node.js dependencies..."
if [ -f "package.json" ]; then
npm install
print_success "Node.js dependencies installed"
else
print_error "package.json not found! Are you in the correct directory?"
exit 1
fi
# Step 5: Build TypeScript
print_info "Step 5/5: Building TypeScript..."
npm run build
print_success "TypeScript build complete"
# Final checks
echo ""
print_info "Running final checks..."
# Check if dist directory was created
if [ -d "dist" ]; then
print_success "dist/ directory created"
else
print_error "dist/ directory not found - build may have failed"
exit 1
fi
# Test platform helper
print_info "Testing platform detection..."
if python3 python/utils/platform_helper.py > /dev/null 2>&1; then
print_success "Platform helper working"
else
print_warning "Platform helper test failed"
fi
# Installation complete
echo ""
echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ 🎉 Installation Complete! 🎉 ║"
echo "╚═══════════════════════════════════════════════════════════════╝"
echo ""
print_success "KiCAD MCP Server is ready to use!"
echo ""
print_info "Next steps:"
echo " 1. Configure Cline in VSCode with the path to dist/index.js"
echo " 2. Set PYTHONPATH in Cline config (see README.md)"
echo " 3. Restart VSCode"
echo " 4. Test with: 'Create a new KiCAD project named TestProject'"
echo ""
print_info "For detailed configuration, see:"
echo " - README.md (Linux section)"
echo " - config/linux-config.example.json"
echo ""
print_info "To run tests:"
echo " pytest tests/"
echo ""
print_info "Need help? Check docs/LINUX_COMPATIBILITY_AUDIT.md"
echo ""
#!/bin/bash
# KiCAD MCP Server - Linux Installation Script
# Supports Ubuntu/Debian-based distributions
set -e # Exit on error
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Print colored messages
print_info() { echo -e "${BLUE}${NC} $1"; }
print_success() { echo -e "${GREEN}${NC} $1"; }
print_warning() { echo -e "${YELLOW}${NC} $1"; }
print_error() { echo -e "${RED}${NC} $1"; }
# Header
echo ""
echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ KiCAD MCP Server - Linux Installation ║"
echo "║ ║"
echo "║ This script will install: ║"
echo "║ - KiCAD 9.0 ║"
echo "║ - Node.js 20.x ║"
echo "║ - Python dependencies ║"
echo "║ - Build the TypeScript server ║"
echo "╚═══════════════════════════════════════════════════════════════╝"
echo ""
# Check if running on Linux
if [[ "$OSTYPE" != "linux-gnu"* ]]; then
print_error "This script is for Linux only. Detected: $OSTYPE"
exit 1
fi
# Check for Ubuntu/Debian
if ! command -v apt-get &> /dev/null; then
print_warning "This script is optimized for Ubuntu/Debian"
print_warning "For other distributions, please install manually"
read -p "Continue anyway? (y/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
# Function to check if command exists
command_exists() {
command -v "$1" &> /dev/null
}
# Step 1: Install KiCAD 9.0
print_info "Step 1/5: Installing KiCAD 9.0..."
if command_exists kicad; then
KICAD_VERSION=$(kicad-cli version 2>/dev/null | head -n 1 || echo "unknown")
print_success "KiCAD is already installed: $KICAD_VERSION"
else
print_info "Adding KiCAD PPA and installing..."
sudo add-apt-repository --yes ppa:kicad/kicad-9.0-releases
sudo apt-get update
sudo apt-get install -y kicad kicad-libraries
print_success "KiCAD 9.0 installed"
fi
# Verify KiCAD Python module
print_info "Verifying KiCAD Python module..."
if python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())" 2>/dev/null; then
PCBNEW_VERSION=$(python3 -c "import pcbnew; print(pcbnew.GetBuildVersion())")
print_success "KiCAD Python module (pcbnew) found: $PCBNEW_VERSION"
else
print_warning "KiCAD Python module (pcbnew) not found in default Python path"
print_warning "You may need to set PYTHONPATH manually"
fi
# Step 2: Install Node.js
print_info "Step 2/5: Installing Node.js 20.x..."
if command_exists node; then
NODE_VERSION=$(node --version)
MAJOR_VERSION=$(echo $NODE_VERSION | cut -d'.' -f1 | sed 's/v//')
if [ "$MAJOR_VERSION" -ge 18 ]; then
print_success "Node.js is already installed: $NODE_VERSION"
else
print_warning "Node.js version is too old: $NODE_VERSION (need 18+)"
print_info "Installing Node.js 20.x..."
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
print_success "Node.js updated"
fi
else
print_info "Installing Node.js 20.x..."
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
print_success "Node.js installed: $(node --version)"
fi
# Step 3: Install Python dependencies
print_info "Step 3/5: Installing Python dependencies..."
if [ -f "requirements.txt" ]; then
pip3 install --user -r requirements.txt
print_success "Python dependencies installed"
else
print_warning "requirements.txt not found - skipping Python dependencies"
fi
# Step 4: Install Node.js dependencies
print_info "Step 4/5: Installing Node.js dependencies..."
if [ -f "package.json" ]; then
npm install
print_success "Node.js dependencies installed"
else
print_error "package.json not found! Are you in the correct directory?"
exit 1
fi
# Step 5: Build TypeScript
print_info "Step 5/5: Building TypeScript..."
npm run build
print_success "TypeScript build complete"
# Final checks
echo ""
print_info "Running final checks..."
# Check if dist directory was created
if [ -d "dist" ]; then
print_success "dist/ directory created"
else
print_error "dist/ directory not found - build may have failed"
exit 1
fi
# Test platform helper
print_info "Testing platform detection..."
if python3 python/utils/platform_helper.py > /dev/null 2>&1; then
print_success "Platform helper working"
else
print_warning "Platform helper test failed"
fi
# Installation complete
echo ""
echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ 🎉 Installation Complete! 🎉 ║"
echo "╚═══════════════════════════════════════════════════════════════╝"
echo ""
print_success "KiCAD MCP Server is ready to use!"
echo ""
print_info "Next steps:"
echo " 1. Configure Cline in VSCode with the path to dist/index.js"
echo " 2. Set PYTHONPATH in Cline config (see README.md)"
echo " 3. Restart VSCode"
echo " 4. Test with: 'Create a new KiCAD project named TestProject'"
echo ""
print_info "For detailed configuration, see:"
echo " - README.md (Linux section)"
echo " - config/linux-config.example.json"
echo ""
print_info "To run tests:"
echo " pytest tests/"
echo ""
print_info "Need help? Check docs/LINUX_COMPATIBILITY_AUDIT.md"
echo ""