-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
99 lines (86 loc) · 3.39 KB
/
Copy pathinstall.sh
File metadata and controls
99 lines (86 loc) · 3.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
set -e
echo "🚀 PHPix Installation Script"
echo "============================="
echo ""
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Check if Homebrew is installed
if ! command -v brew &> /dev/null; then
echo -e "${RED}❌ Homebrew not found. Please install it first:${NC}"
echo " /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
exit 1
fi
echo -e "${GREEN}✓ Homebrew found${NC}"
echo ""
# Install PHP 8.4
echo "📦 Installing PHP 8.4..."
if brew list shivammathur/php/php@8.4 &> /dev/null; then
echo -e "${YELLOW}⚠ PHP 8.4 already installed, skipping...${NC}"
else
brew tap shivammathur/php
brew install shivammathur/php/php@8.4
fi
brew link --overwrite --force shivammathur/php/php@8.4
echo -e "${GREEN}✓ PHP installed:${NC} $(php -v | head -n 1)"
echo ""
# Install Composer
echo "📦 Installing Composer..."
if command -v composer &> /dev/null; then
echo -e "${YELLOW}⚠ Composer already installed, skipping...${NC}"
composer self-update || true
else
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" || true
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
fi
echo -e "${GREEN}✓ Composer installed:${NC} $(composer -V)"
echo ""
# Update PATH for composer global packages
SHELL_RC="$HOME/.$(basename $SHELL)rc"
if ! grep -q '.composer/vendor/bin' "$SHELL_RC" 2>/dev/null; then
echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> "$SHELL_RC"
echo -e "${GREEN}✓ Added Composer to PATH in $SHELL_RC${NC}"
fi
# Source the shell config
export PATH="$PATH:$HOME/.composer/vendor/bin"
# Install WP-CLI globally
echo "📦 Installing WP-CLI bundle (with PsySH & CPX)..."
composer global require wp-cli/wp-cli-bundle --no-interaction --quiet
echo -e "${GREEN}✓ WP-CLI installed:${NC} $(wp --version 2>/dev/null || echo 'wp command available after shell restart')"
echo ""
# Install Deployer globally
echo "📦 Installing Deployer..."
composer global require deployer/deployer --no-interaction --quiet
echo -e "${GREEN}✓ Deployer installed:${NC} $(dep --version 2>/dev/null || echo 'dep command available after shell restart')"
echo ""
# Install local project dependencies if composer.json exists
if [ -f "composer.json" ]; then
echo "📦 Installing project dependencies..."
composer install --no-interaction
echo -e "${GREEN}✓ Project dependencies installed${NC}"
echo ""
fi
# Summary
echo "============================="
echo -e "${GREEN}✅ PHPix installation complete!${NC}"
echo ""
echo "Installed tools:"
echo " • PHP 8.4 ($(php -v | head -n 1 | cut -d' ' -f2))"
echo " • Composer ($(composer -V 2>/dev/null | cut -d' ' -f3 || echo 'installed'))"
echo " • WP-CLI (restart shell to use 'wp' command)"
echo " • Deployer (restart shell to use 'dep' command)"
echo " • PsySH (restart shell to use 'psysh' command)"
echo ""
echo "Next steps:"
echo " 1. Restart your shell: exec $SHELL"
echo " 2. Verify: php -v && composer -V && wp --version && dep --version"
echo " 3. Configure deploy.php for your servers"
echo " 4. Run: dep deploy staging"
echo ""
echo -e "${YELLOW}💡 Tip: Use 'mise run' to see available tasks${NC}"
echo ""