@@ -1105,6 +1105,138 @@ EOF
1105
1105
Generated: $( date)
1106
1106
EOF
1107
1107
1108
+ # Copy or download all context files from the repository
1109
+ SCRIPT_DIR=" $( dirname " $0 " ) "
1110
+ REPO_BASE_URL=" https://raw.githubusercontent.com/chrisbaswell/laravel-claude-code-setup/main"
1111
+
1112
+ # Function to copy local file or download from repo
1113
+ copy_or_download_context_file () {
1114
+ local filename=" $1 "
1115
+ local description=" $2 "
1116
+
1117
+ print_status " Installing $description ..."
1118
+ if [ -f " $SCRIPT_DIR /.claude/context/$filename " ]; then
1119
+ cp " $SCRIPT_DIR /.claude/context/$filename " " .claude/context/"
1120
+ print_success " $description copied from local repository"
1121
+ else
1122
+ print_status " $description not found locally, downloading from repository..."
1123
+ if curl -fsSL " $REPO_BASE_URL /.claude/context/$filename " -o " .claude/context/$filename " ; then
1124
+ print_success " $description downloaded successfully"
1125
+ else
1126
+ print_warning " Failed to download $description , creating basic version"
1127
+ return 1
1128
+ fi
1129
+ fi
1130
+ return 0
1131
+ }
1132
+
1133
+ # Install Laravel 12 guidelines
1134
+ if ! copy_or_download_context_file " laravel12_guidelines.md" " Laravel 12 guidelines" ; then
1135
+ cat > " .claude/context/laravel12_guidelines.md" << 'EOF '
1136
+ # Laravel 12 Development Guidelines
1137
+
1138
+ ## Core Laravel 12 Features
1139
+
1140
+ ### New Attribute Class for Accessors/Mutators
1141
+ Laravel 12 introduces the `Attribute` class for cleaner accessor and mutator definitions.
1142
+
1143
+ ### Modern Application Configuration
1144
+ Use the streamlined Application class in `bootstrap/app.php`.
1145
+
1146
+ ### Enhanced Validation
1147
+ Leverage Laravel 12's improved validation features.
1148
+
1149
+ Generated: $(date)
1150
+ EOF
1151
+ fi
1152
+
1153
+ # Install Livewire Volt guidelines
1154
+ if ! copy_or_download_context_file " livewire_volt_guidelines.md" " Livewire Volt guidelines" ; then
1155
+ cat > " .claude/context/livewire_volt_guidelines.md" << 'EOF '
1156
+ # Livewire Volt Development Guidelines
1157
+
1158
+ ## Volt Functional Components
1159
+ Use Volt for modern, functional component development with Livewire.
1160
+
1161
+ Generated: $(date)
1162
+ EOF
1163
+ fi
1164
+
1165
+ # Install FluxUI guidelines
1166
+ if ! copy_or_download_context_file " fluxui_guidelines.md" " FluxUI guidelines" ; then
1167
+ cat > " .claude/context/fluxui_guidelines.md" << 'EOF '
1168
+ # FluxUI Development Guidelines
1169
+
1170
+ ## Component Usage
1171
+ Always prefer FluxUI components over custom HTML/CSS.
1172
+
1173
+ Generated: $(date)
1174
+ EOF
1175
+ fi
1176
+
1177
+ # Install Livewire Alpine context
1178
+ if ! copy_or_download_context_file " livewire_alpine_context.md" " Livewire Alpine context" ; then
1179
+ cat > " .claude/context/livewire_alpine_context.md" << 'EOF '
1180
+ # Livewire + Alpine.js Integration
1181
+
1182
+ ## Best Practices
1183
+ Combine Livewire with Alpine.js for optimal interactivity.
1184
+
1185
+ Generated: $(date)
1186
+ EOF
1187
+ fi
1188
+
1189
+ # Install project structure guide
1190
+ if ! copy_or_download_context_file " project_structure.md" " project structure guide" ; then
1191
+ cat > " .claude/context/project_structure.md" << 'EOF '
1192
+ # Project Structure Guide
1193
+
1194
+ ## Laravel 12 Project Organization
1195
+ Follow Laravel 12 conventions for project structure.
1196
+
1197
+ Generated: $(date)
1198
+ EOF
1199
+ fi
1200
+
1201
+ # Install Playwright testing guide
1202
+ if ! copy_or_download_context_file " playwright_testing.md" " Playwright testing guide" ; then
1203
+ cat > " .claude/context/playwright_testing.md" << 'EOF '
1204
+ # Playwright Testing Guide
1205
+
1206
+ ## End-to-End Testing
1207
+ Use Playwright for comprehensive E2E testing.
1208
+
1209
+ Generated: $(date)
1210
+ EOF
1211
+ fi
1212
+
1213
+ # Install web automation guide
1214
+ if ! copy_or_download_context_file " web_automation_guide.md" " web automation guide" ; then
1215
+ cat > " .claude/context/web_automation_guide.md" << 'EOF '
1216
+ # Web Automation Guide
1217
+
1218
+ ## Playwright vs Fetch MCP
1219
+ Choose the right tool for web automation tasks.
1220
+
1221
+ Generated: $(date)
1222
+ EOF
1223
+ fi
1224
+
1225
+ # Install Herd development guide
1226
+ if ! copy_or_download_context_file " herd_development.md" " Herd development guide" ; then
1227
+ cat > " .claude/context/herd_development.md" << 'EOF '
1228
+ # Laravel Herd Development Guide
1229
+
1230
+ ## Local Development with Herd
1231
+ Use Laravel Herd for zero-configuration local development.
1232
+
1233
+ Generated: $(date)
1234
+ EOF
1235
+ fi
1236
+
1237
+ # Install NetSuite context (optional)
1238
+ copy_or_download_context_file " netsuite_context.md" " NetSuite context" || print_status " NetSuite context skipped (project-specific)"
1239
+
1108
1240
# Create FluxUI quick reference
1109
1241
print_status " Creating FluxUI quick reference..."
1110
1242
cat > " .claude/context/fluxui-reference.md" << EOF
@@ -1387,21 +1519,55 @@ EOF
1387
1519
1388
1520
# Verify all files were created
1389
1521
local files_created=0
1390
- local expected_files=(" context/project-context.md" " context/coding-standards.md" " context/fluxui-reference.md" " shortcuts.sh" " README.md" )
1391
-
1392
- for file in " ${expected_files[@]} " ; do
1522
+ local required_files=(
1523
+ " context/project-context.md"
1524
+ " context/coding-standards.md"
1525
+ " context/fluxui-reference.md"
1526
+ " context/laravel12_guidelines.md"
1527
+ " context/livewire_volt_guidelines.md"
1528
+ " context/fluxui_guidelines.md"
1529
+ " context/livewire_alpine_context.md"
1530
+ " context/project_structure.md"
1531
+ " context/playwright_testing.md"
1532
+ " context/web_automation_guide.md"
1533
+ " context/herd_development.md"
1534
+ " shortcuts.sh"
1535
+ " README.md"
1536
+ )
1537
+
1538
+ local optional_files=(
1539
+ " context/netsuite_context.md"
1540
+ )
1541
+
1542
+ # Count required files
1543
+ for file in " ${required_files[@]} " ; do
1393
1544
if [ -f " .claude/$file " ]; then
1394
1545
(( files_created++ ))
1395
1546
else
1396
- print_error " Failed to create .claude/$file "
1547
+ print_error " Failed to create required file: .claude/$file "
1548
+ fi
1549
+ done
1550
+
1551
+ # Count optional files
1552
+ local optional_created=0
1553
+ for file in " ${optional_files[@]} " ; do
1554
+ if [ -f " .claude/$file " ]; then
1555
+ (( files_created++ ))
1556
+ (( optional_created++ ))
1397
1557
fi
1398
1558
done
1399
1559
1400
- if [ $files_created -eq ${# expected_files[@]} ]; then
1401
- print_success " Project context files created! ($files_created /${# expected_files[@]} files)"
1560
+ local total_possible_files=$(( ${# required_files[@]} + ${# optional_files[@]} ))
1561
+
1562
+ if [ $files_created -ge ${# required_files[@]} ]; then
1563
+ print_success " All required context files created! ($files_created /$total_possible_files files total)"
1564
+ if [ $optional_created -gt 0 ]; then
1565
+ print_status " Optional files installed: $optional_created "
1566
+ fi
1402
1567
return 0
1403
1568
else
1404
- print_error " Only $files_created /${# expected_files[@]} project files were created successfully"
1569
+ print_error " Only $files_created /$total_possible_files project files were created successfully"
1570
+ print_error " Missing required files. Check the installation output above."
1405
1571
return 1
1406
1572
fi
1407
1573
}
@@ -1497,7 +1663,7 @@ install_fluxui_and_volt() {
1497
1663
# Main installation function
1498
1664
main () {
1499
1665
echo " ================================================"
1500
- echo " Laravel Claude Code Setup Script v3.1 "
1666
+ echo " Laravel Claude Code Setup Script v3.2 "
1501
1667
echo " Laravel 12 + FluxUI + Playwright MCP Server"
1502
1668
echo " ================================================"
1503
1669
echo " "
0 commit comments