Skip to content

Commit 543243a

Browse files
authored
Merge pull request #1 from retlehs/local-support
1.1.0 - Local support
2 parents de2b54d + e538308 commit 543243a

File tree

4 files changed

+51
-10
lines changed

4 files changed

+51
-10
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
### 1.1.0: February 21st, 2019
2+
* Support for local development without a VM (Valet, etc). by passing `--local` at the end of the arguments
3+
14
### 1.0.0: February 21st, 2019
25
* Initial release

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,15 @@ $ ./sync.sh production staging
110110
$ ./sync.sh staging production
111111
```
112112

113+
### Local development without VM (Valet, etc.)
114+
115+
The `--local` flag can be passed at the end of the arguments to skip using WP-CLI aliases for development. This means that you can use the sync script on a local development setup such as Valet.
116+
117+
```sh
118+
# Sync production down to development
119+
$ ./sync.sh production development --local
120+
```
121+
113122
## Troubleshooting
114123

115124
### Unable to connect to development

sync-kinsta.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22

33
# Syncing Trellis & Bedrock-based WordPress environments with WP-CLI aliases (Kinsta version)
4+
# Version 1.1.0
45
# Copyright (c) Ben Word
56

67
DEVDIR="web/app/uploads/"

sync.sh

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22

33
# Syncing Trellis & Bedrock-based WordPress environments with WP-CLI aliases
4+
# Version 1.1.0
45
# Copyright (c) Ben Word
56

67
DEVDIR="web/app/uploads/"
@@ -14,15 +15,20 @@ STAGSITE="https://staging.example.com"
1415

1516
FROM=$1
1617
TO=$2
18+
LOCAL=false
19+
20+
if [[ $3 == "--local" ]]; then
21+
LOCAL=true
22+
fi
1723

1824
bold=$(tput bold)
1925
normal=$(tput sgr0)
2026

2127
case "$1-$2" in
22-
production-development) DIR="down ⬇️ " FROMSITE=$PRODSITE; FROMDIR=$PRODDIR; TOSITE=$DEVSITE; TODIR=$DEVDIR; ;;
23-
staging-development) DIR="down ⬇️ " FROMSITE=$STAGSITE; FROMDIR=$STAGDIR; TOSITE=$DEVSITE; TODIR=$DEVDIR; ;;
24-
development-production) DIR="up ⬆️ " FROMSITE=$DEVSITE; FROMDIR=$DEVDIR; TOSITE=$PRODSITE; TODIR=$PRODDIR; ;;
25-
development-staging) DIR="up ⬆️ " FROMSITE=$DEVSITE; FROMDIR=$DEVDIR; TOSITE=$STAGSITE; TODIR=$STAGDIR; ;;
28+
production-development) DIR="down ⬇️ " FROMSITE=$PRODSITE; FROMDIR=$PRODDIR; TOSITE=$DEVSITE; TODIR=$DEVDIR; ;;
29+
staging-development) DIR="down ⬇️ " FROMSITE=$STAGSITE; FROMDIR=$STAGDIR; TOSITE=$DEVSITE; TODIR=$DEVDIR; ;;
30+
development-production) DIR="up ⬆️ " FROMSITE=$DEVSITE; FROMDIR=$DEVDIR; TOSITE=$PRODSITE; TODIR=$PRODDIR; ;;
31+
development-staging) DIR="up ⬆️ " FROMSITE=$DEVSITE; FROMDIR=$DEVDIR; TOSITE=$STAGSITE; TODIR=$STAGDIR; ;;
2632
production-staging) DIR="horizontally ↔️ "; FROMSITE=$PRODSITE; FROMDIR=$PRODDIR; TOSITE=$STAGSITE; TODIR=$STAGDIR; ;;
2733
staging-production) DIR="horizontally ↔️ "; FROMSITE=$STAGSITE; FROMDIR=$STAGDIR; TOSITE=$PRODSITE; TODIR=$PRODDIR; ;;
2834
*) echo "usage: $0 production development | staging development | development staging | development production | staging production | production staging" && exit 1 ;;
@@ -40,7 +46,12 @@ if [[ "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
4046
# Make sure both environments are available before we continue
4147
availfrom() {
4248
local AVAILFROM
43-
AVAILFROM=$(wp "@$FROM" option get home 2>&1)
49+
50+
if [[ "$LOCAL" = true && $FROM == "development" ]]; then
51+
AVAILFROM=$(wp option get home 2>&1)
52+
else
53+
AVAILFROM=$(wp "@$FROM" option get home 2>&1)
54+
fi
4455
if [[ $AVAILFROM == *"Error"* ]]; then
4556
echo "❌ Unable to connect to $FROM"
4657
exit 1
@@ -52,7 +63,12 @@ if [[ "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
5263

5364
availto() {
5465
local AVAILTO
55-
AVAILTO=$(wp "@$TO" option get home 2>&1)
66+
if [[ "$LOCAL" = true && $TO == "development" ]]; then
67+
AVAILTO=$(wp option get home 2>&1)
68+
else
69+
AVAILTO=$(wp "@$TO" option get home 2>&1)
70+
fi
71+
5672
if [[ $AVAILTO == *"Error"* ]]; then
5773
echo "❌ Unable to connect to $TO"
5874
exit 1
@@ -64,10 +80,22 @@ if [[ "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
6480
echo
6581

6682
# Export/import database, run search & replace
67-
wp "@$TO" db export &&
68-
wp "@$TO" db reset --yes &&
69-
wp "@$FROM" db export - | wp "@$TO" db import - &&
70-
wp "@$TO" search-replace "$FROMSITE" "$TOSITE" &&
83+
if [[ "$LOCAL" = true && $TO == "development" ]]; then
84+
wp db export &&
85+
wp db reset --yes &&
86+
wp "@$FROM" db export - | wp db import - &&
87+
wp search-replace "$FROMSITE" "$TOSITE"
88+
elif [[ "$LOCAL" = true && $FROM == "development" ]]; then
89+
wp "@$TO" db export &&
90+
wp "@$TO" db reset --yes &&
91+
wp db export - | wp "@$TO" db import - &&
92+
wp "@$TO" search-replace "$FROMSITE" "$TOSITE"
93+
else
94+
wp "@$TO" db export &&
95+
wp "@$TO" db reset --yes &&
96+
wp "@$FROM" db export - | wp "@$TO" db import - &&
97+
wp "@$TO" search-replace "$FROMSITE" "$TOSITE"
98+
fi
7199

72100
# Sync uploads directory
73101
chmod -R 755 web/app/uploads/ &&

0 commit comments

Comments
 (0)