diff options
-rwxr-xr-x | wordpress/wordpress-config-info | 134 |
1 files changed, 121 insertions, 13 deletions
diff --git a/wordpress/wordpress-config-info b/wordpress/wordpress-config-info index 869fac9..5fedd74 100755 --- a/wordpress/wordpress-config-info +++ b/wordpress/wordpress-config-info | |||
@@ -2,17 +2,82 @@ | |||
2 | set -e | 2 | set -e |
3 | set -o pipefail | 3 | set -o pipefail |
4 | 4 | ||
5 | wp_config_get() | 5 | env_to_json() |
6 | { | ||
7 | while read kv | ||
8 | do | ||
9 | set -- "${kv%%=*}" "${kv#*=}" | ||
10 | jq -cn '{ ($k): $v }' --arg k "$1" --arg v "$2" | ||
11 | done | ||
12 | } | ||
13 | |||
14 | wp_config_export_assigns() | ||
15 | { | ||
16 | set -- "$wp_config" | ||
17 | wp_config_get_assigns | | ||
18 | env_to_json | | ||
19 | jq -s '{filename: $fn, assigns: .}' --arg fn "$1" | ||
20 | } | ||
21 | |||
22 | wp_config_export_source() | ||
23 | { | ||
24 | set -- "$wp_config" | ||
25 | jq -n -s '{filename: $fn, data: $fdata}' --arg fn "$1" --rawfile fdata "$1" | ||
26 | } | ||
27 | |||
28 | wp_config_export_defines() | ||
29 | { | ||
30 | set -- "$wp_config" | ||
31 | wp_config_get_defines | | ||
32 | while read kv | ||
33 | do | ||
34 | set -- "${kv%%=*}" "${kv#*=}" | ||
35 | jq -cn '{ ($k): $v }' --arg k "$1" --arg v "$2" | ||
36 | done | jq -s '{filename: $fn, defines: .}' --arg fn "$1" | ||
37 | } | ||
38 | |||
39 | wp_config_export_defines() | ||
40 | { | ||
41 | set -- "$wp_config" | ||
42 | wp_config_get_defines | | ||
43 | env_to_json | | ||
44 | jq -s '{filename: $fn, defines: .}' --arg fn "$1" | ||
45 | } | ||
46 | |||
47 | wp_config_export_all() | ||
48 | { | ||
49 | ( | ||
50 | wp_config_export_defines "$@" && | ||
51 | wp_config_export_assigns "$@" && | ||
52 | wp_config_export_source "$@" | ||
53 | ) | jq -s add | ||
54 | } | ||
55 | |||
56 | wp_config_get_defines() | ||
57 | { | ||
58 | sed -e 's/\r//g' -ne \ | ||
59 | "s/^define *( *'\([^']*\)' *, *'\([^']*\)' *) *;.*$/\1=\2/p" \ | ||
60 | < "$wp_config" | ||
61 | } | ||
62 | |||
63 | wp_config_get_define() | ||
6 | { | 64 | { |
7 | sed -e 's/\r//g' -ne \ | 65 | sed -e 's/\r//g' -ne \ |
8 | "s/^define *( *'$1' *, *'\([^']*\)' *) *; *$/\1/p" \ | 66 | "s/^define *( *'$1' *, *'\([^']*\)' *) *; *$/\1/p" \ |
9 | < "$wp_config" | 67 | < "$wp_config" |
10 | } | 68 | } |
11 | 69 | ||
12 | wp_config_table_prefix_get() | 70 | wp_config_get_assign() |
13 | { | 71 | { |
14 | sed -e 's/\r//g' -ne \ | 72 | sed -e 's/\r//g' -ne \ |
15 | "s/^\$table_prefix *= *'\\([^']*\\)' *; *$/\\1/p" \ | 73 | "s/^\$${1} *= *'\\([^']*\\)' *; *$/\\1/p" \ |
74 | < "$wp_config" | ||
75 | } | ||
76 | |||
77 | wp_config_get_assigns() | ||
78 | { | ||
79 | sed -E -e 's/\r//g' -ne \ | ||
80 | "s/^[$]([a-zA-Z_][a-zA-Z_0-9]*) *= *'([^']*)' *; *$/\\1=\\2/p" \ | ||
16 | < "$wp_config" | 81 | < "$wp_config" |
17 | } | 82 | } |
18 | 83 | ||
@@ -45,12 +110,13 @@ then | |||
45 | prefix=/srv/ | 110 | prefix=/srv/ |
46 | suffix=/public_html | 111 | suffix=/public_html |
47 | json='[ { site: $SITE, wordpress_config: . } ]' | 112 | json='[ { site: $SITE, wordpress_config: . } ]' |
48 | for SITE in $prefix*$suffix | 113 | declare -a sites=( $prefix*$suffix ) |
114 | for SITE in "${sites[@]}" | ||
49 | do | 115 | do |
50 | SITE=${SITE%$suffix} | 116 | SITE=${SITE%$suffix} |
51 | SITE=${SITE#$prefix} | 117 | SITE=${SITE#$prefix} |
52 | "$0" "$SITE" | | 118 | "$0" "$SITE" | jq --arg SITE "$SITE" "$json" || exit 7 |
53 | jq --arg SITE "$SITE" "$json" || continue | 119 | #"$0" "$SITE" || exit 7 |
54 | done | | 120 | done | |
55 | jq -s add | 121 | jq -s add |
56 | exit | 122 | exit |
@@ -59,18 +125,60 @@ then | |||
59 | exit -1 | 125 | exit -1 |
60 | fi | 126 | fi |
61 | 127 | ||
62 | find_wp_config "$1" | 128 | find_wp_config "$1" || exit 0 |
129 | |||
130 | new_interface_to_old_interface() | ||
131 | { | ||
132 | jq '.[] | .wordpress_config | {defines, assigns} | .' | ||
133 | } | ||
63 | 134 | ||
64 | db_name=$(wp_config_get DB_NAME) | 135 | new_interface_to_old_interface() |
136 | { | ||
137 | jq '.[] | .wordpress_config | | ||
138 | { defines: .defines | add | ||
139 | , assigns: .assigns | add | ||
140 | } | | ||
141 | { db_host: .defines.DB_HOST | ||
142 | , db_user: .defines.DB_USER | ||
143 | , db_password: .defines.DB_PASSWORD | ||
144 | , db_name: .defines.DB_NAME | ||
145 | , table_prefix: .assigns.table_prefix | ||
146 | }' | ||
147 | } | ||
148 | |||
149 | OLD_INTERFACE=y | ||
150 | if [ "$NEW_INTERFACE" ] | ||
151 | then | ||
152 | OLD_INTERFACE= | ||
153 | fi | ||
154 | if [ "$OLD_INTERFACE" ] | ||
155 | then | ||
156 | OLD_INTERFACE= NEW_INTERFACE=y "$0" "$@" | new_interface_to_old_interface | ||
157 | exit | ||
158 | fi | ||
159 | |||
160 | wp_config_export_all | | ||
161 | jq --arg SITE "$1" '[ { site: $SITE, wordpress_config: . } ]' | ||
162 | exit | ||
163 | |||
164 | |||
165 | |||
166 | |||
167 | |||
168 | |||
169 | |||
170 | |||
171 | |||
172 | exit | ||
173 | db_name=$(wp_config_get_define DB_NAME) | ||
65 | [ "$db_name" ] | 174 | [ "$db_name" ] |
66 | db_host=$(wp_config_get DB_HOST) | 175 | db_host=$(wp_config_get_define DB_HOST) |
67 | [ "$db_host" ] | 176 | [ "$db_host" ] |
68 | db_user=$(wp_config_get DB_USER) | 177 | db_user=$(wp_config_get_define DB_USER) |
69 | [ "$db_user" ] | 178 | [ "$db_user" ] |
70 | db_password=$(wp_config_get DB_PASSWORD) | 179 | db_password=$(wp_config_get_define DB_PASSWORD) |
71 | [ "$db_password" ] | 180 | [ "$db_password" ] |
72 | table_prefix=$(wp_config_table_prefix_get) | 181 | table_prefix=$(wp_config_get_assign table_prefix) |
73 | |||
74 | jq -n \ | 182 | jq -n \ |
75 | --arg h "$db_host" \ | 183 | --arg h "$db_host" \ |
76 | --arg u "$db_user" \ | 184 | --arg u "$db_user" \ |