-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsanity-check
More file actions
executable file
·95 lines (84 loc) · 5.13 KB
/
sanity-check
File metadata and controls
executable file
·95 lines (84 loc) · 5.13 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
#!/usr/bin/env bash
#ddev-generated
#annertech-ddev
## Description: Sanity-check Drupal and Upsun configuration
## Usage: sanity-check [-s] [-b|--best-practices] [-o|--offline]
## Example: "ddev sanity-check" or "ddev sanity-check -b" or "ddev sanity-check -o"
## ProjectTypes: drupal10,drupal11
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'; BOLD='\033[1m'
SILENT=false
BEST_PRACTICES=false
OFFLINE=false
[[ "$*" == *"-s"* ]] && SILENT=true
[[ "$*" == *"-b"* || "$*" == *"--best-practices"* ]] && BEST_PRACTICES=true
[[ "$*" == *"-o"* || "$*" == *"--offline"* ]] && OFFLINE=true
pass() { $SILENT || echo -e "${GREEN} ✓ $1${NC}"; }
fail() { echo -e "${RED} ✗ $1${NC}"; ERRORS=$((ERRORS + 1)); }
warn() { echo -e "${YELLOW} ! $1${NC}"; WARNINGS=$((WARNINGS + 1)); }
title() { echo -e "\n── $1 ──"; }
group() { echo -e "\n${BOLD}$1${NC}"; }
# ── Version constraints ──────────────────────────────────────────────────────
PHP_MIN="8.3"
DB_MIN_MARIADB="10.11"
REDIS_REQUIRED_VERSION="8"
DDEV_SOLR_VERSION="v1.2.3"
UPSUN_SOLR_MIN="9.1"
CONFIG_READER_MIN=3
# ─────────────────────────────────────────────────────────────────────────────
ERRORS=0
WARNINGS=0
APPROOT="${DDEV_APPROOT:-.}"
BEHIND_CDN=false
CDN_NAME=""
EXT_FILE=""
DDEV_DB_TYPE=""
DDEV_DB_VERSION=""
LOCK_FILE="$APPROOT/composer.lock"
DDEV_CONFIG="$APPROOT/.ddev/config.yaml"
APP_YAML=$(find "$APPROOT" -maxdepth 2 -name ".platform.app.yaml" ! -path "*/.git/*" 2>/dev/null | head -1)
SERVICES_FILE="$APPROOT/.platform/services.yaml"
ROUTES_FILE="$APPROOT/.platform/routes.yaml"
[[ -f "$APPROOT/.ddev/.env" ]] && source "$APPROOT/.ddev/.env"
[[ -f "$APPROOT/.ddev/.env.anner" ]] && source "$APPROOT/.ddev/.env.anner"
LIB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/_lib"
# ════════════════════════════════════════════════════════════════════════════
group "DRUPAL"
# ════════════════════════════════════════════════════════════════════════════
. "$LIB_DIR/check-drupal-version.sh"
. "$LIB_DIR/check-drupal-performance.sh"
. "$LIB_DIR/check-drupal-extensions.sh"
. "$LIB_DIR/check-drupal-files-view.sh"
. "$LIB_DIR/check-drupal-simplei.sh"
. "$LIB_DIR/check-drupal-gin.sh"
$BEST_PRACTICES && . "$LIB_DIR/check-drupal-image-styles.sh"
# ════════════════════════════════════════════════════════════════════════════
group "COMPOSER"
# ════════════════════════════════════════════════════════════════════════════
$OFFLINE || . "$LIB_DIR/check-composer-validate.sh"
. "$LIB_DIR/check-composer-packages.sh"
. "$LIB_DIR/check-composer-audit.sh"
# ════════════════════════════════════════════════════════════════════════════
group "DDEV"
# ════════════════════════════════════════════════════════════════════════════
. "$LIB_DIR/check-ddev-database.sh"
. "$LIB_DIR/check-ddev-solr.sh"
# ════════════════════════════════════════════════════════════════════════════
if [[ -n "$APP_YAML" ]] && [[ "$DDEV_UPSTREAM_PROVIDER" == "platform" || "$DDEV_UPSTREAM_PROVIDER" == "upsun" ]]; then
group "UPSUN"
# ════════════════════════════════════════════════════════════════════════════
. "$LIB_DIR/check-upsun-project-id.sh"
. "$LIB_DIR/check-upsun-versions.sh"
. "$LIB_DIR/check-upsun-apcu.sh"
. "$LIB_DIR/check-drupal-cdn.sh"
. "$LIB_DIR/check-upsun-botbuster.sh"
fi
# ── Summary ─────────────────────────────────────────────────────────────────
echo ""
if [[ $ERRORS -gt 0 ]]; then
echo -e "${RED}── $ERRORS error(s) found ──${NC}"
exit 1
elif [[ $WARNINGS -gt 0 ]]; then
echo -e "${YELLOW}── All checks passed with $WARNINGS warning(s) ──${NC}"
else
echo -e "${GREEN}── All checks passed ──${NC}"
fi