-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwp.sh
executable file
·107 lines (89 loc) · 3.53 KB
/
wp.sh
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
100
101
102
103
104
105
106
107
#!/usr/bin/env bash
set -o allexport
source ./.env
set +o allexport
colour_bold="${colour_bold:-""}"
colour_green="${colour_green:-""}"
colour_normal="${colour_normal:-""}"
colour_red="${colour_red:-""}"
colour_rev="${colour_rev:-""}"
show_commands() {
echo "Supported commands:"
echo "${colour_bold}cli <COMMAND>${colour_normal} runs wp-cli"
echo "${colour_bold}url:set <OLD-URL> <NEW-URL>${colour_normal} changes url"
echo "${colour_bold}db:import <PATH>${colour_normal} runs imports SQL from path"
echo "${colour_bold}db:export <PATH>${colour_normal} create new SQL file"
echo "${colour_bold}db:reset <PATH>${colour_normal} recreate db"
echo "${colour_bold}build ${colour_normal} create production with correct file structure"
}
if [ $# = 0 ] ; then
show_commands
exit
fi
case $1 in
cli)
shift 1
docker-compose run --rm --no-deps wordpress-cli "$@"
exit
;;
url:set)
shift 1
docker-compose run --rm --no-deps wordpress-cli search-replace "$@" --all-tables
docker-compose run --rm --no-deps wordpress-cli elementor replace_urls "$@"
exit
;;
db:import)
shift 1
SQL_FILENAME="$@"
if [ -f "$SQL_FILENAME" ]; then
docker-compose exec db mysql -u "$WORDPRESS_DB_USER" -p"$WORDPRESS_DB_PASSWORD" -e "drop database $WORDPRESS_DB_NAME"
docker-compose exec db mysql -u "$WORDPRESS_DB_USER" -p"$WORDPRESS_DB_PASSWORD" -e "create database $WORDPRESS_DB_NAME"
docker-compose exec db mysql -u "$WORDPRESS_DB_USER" -p"$WORDPRESS_DB_PASSWORD" "$WORDPRESS_DB_NAME" -e "source /$SQL_FILENAME"
else
echo "SQL doesn't exists"
fi
exit
;;
db:export)
shift 1
SQL_FILENAME="backup-$(date +%s).sql"
docker-compose exec db /bin/bash -c "mysqldump -u $WORDPRESS_DB_USER -p$WORDPRESS_DB_PASSWORD $WORDPRESS_DB_NAME > /sql/$SQL_FILENAME"
exit
;;
db:reset)
docker-compose exec db mysql -u "$WORDPRESS_DB_USER" -p"$WORDPRESS_DB_PASSWORD" -e "drop database $WORDPRESS_DB_NAME"
docker-compose exec db mysql -u "$WORDPRESS_DB_USER" -p"$WORDPRESS_DB_PASSWORD" -e "create database $WORDPRESS_DB_NAME"
exit
;;
build)
WORDPRESS_FILENAME="wordpress-$WORDPRESS_VERSION.zip"
WORDPRESS_URL="https://wordpress.org/$WORDPRESS_FILENAME"
WORDPRESS_BUILD_PATH="./build/$WORDPRESS_VERSION"
if [ ! -f "./build/$WORDPRESS_FILENAME" ]; then
wget "$WORDPRESS_URL" -O "./build/$WORDPRESS_FILENAME"
fi
rm -rf "./build/wordpress"
rm -rf "./build/$WORDPRESS_VERSION"
unzip -q "./build/$WORDPRESS_FILENAME" -d "./build"
mv "./build/wordpress" "$WORDPRESS_BUILD_PATH"
rm -rf "$WORDPRESS_BUILD_PATH/wp-content/themes/twentytwenty"
rm -rf "$WORDPRESS_BUILD_PATH/wp-content/themes/twentytwentyone"
rm -rf "$WORDPRESS_BUILD_PATH/wp-content/themes/twentytwentytwo"
rm -rf "$WORDPRESS_BUILD_PATH/wp-content/themes/twentytwentytwo"
rm -rf "$WORDPRESS_BUILD_PATH/wp-content/plugins/akismet"
rm -rf "$WORDPRESS_BUILD_PATH/wp-content/plugins/hello.php"
cp -r ./plugins "$WORDPRESS_BUILD_PATH/wp-content"
cp -r ./themes "$WORDPRESS_BUILD_PATH/wp-content"
cp -r ./uploads "$WORDPRESS_BUILD_PATH/wp-content"
exit
;;
help)
show_commands
exit
;;
*)
echo "Unknown command ${colour_bold}$1${colour_normal}"
show_commands
exit
;;
esac