diff options
author | root <root@vps-18a7a2b7.vps.ovh.ca> | 2024-02-09 17:34:43 -0500 |
---|---|---|
committer | root <root@vps-18a7a2b7.vps.ovh.ca> | 2024-02-09 17:34:43 -0500 |
commit | 4204732ee7a0dee22b2c5aa6decc600a13ca02b4 (patch) | |
tree | 78d9dc2762a3270885b926ad8c5bc3069c1ca118 | |
parent | d22e4dc2ef153334bf3c0d3b57f609e14f26a07f (diff) |
rewrite create-wp-config with --fqdn functionality to derive entire config from hostname
-rwxr-xr-x | wordpress/wordpress-create-wp-config | 112 |
1 files changed, 91 insertions, 21 deletions
diff --git a/wordpress/wordpress-create-wp-config b/wordpress/wordpress-create-wp-config index d0f4447..5c756d9 100755 --- a/wordpress/wordpress-create-wp-config +++ b/wordpress/wordpress-create-wp-config | |||
@@ -1,16 +1,86 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/bash |
2 | 2 | set -e | |
3 | DB_NAME=$1 | 3 | set -o pipefail |
4 | DB_USER=$2 | 4 | |
5 | DB_PASSWORD=$(tr -cd a-z < /dev/urandom | head -c14) | 5 | rand64() |
6 | Random1=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 6 | { |
7 | Random2=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 7 | set -- "${1:-64}" |
8 | Random3=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 8 | [ "$1" -ge 4 ] && |
9 | Random4=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 9 | set -- "$1" "$(head -c "$(($1 * 3 / 4))" < /dev/urandom | base64)" && |
10 | Random5=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 10 | [ "${#2}" = "$1" ] && |
11 | Random6=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 11 | printf '%s\n' "$2" |
12 | Random7=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 12 | } |
13 | Random8=$(tr -cd 0-9a-f < /dev/urandom | head -c32) | 13 | |
14 | rand26() | ||
15 | { | ||
16 | set -- "${1:-32}" && | ||
17 | [ "$1" -ge 4 ] && | ||
18 | set -- "$1" "$(tr -cd a-z </dev/urandom | head -c "$1")" && | ||
19 | [ "${#2}" = "$1" ] && | ||
20 | printf '%s\n' "$2" | ||
21 | } | ||
22 | |||
23 | usage() | ||
24 | { | ||
25 | cat <<END >&2 | ||
26 | Usage: | ||
27 | $0 <--fqdn> | ||
28 | $0 <hostname> <db name> <username> | ||
29 | $0 <-h | --help> | ||
30 | |||
31 | With --fqdn, parameters are derived from \$(hostname --fqdn) or | ||
32 | locally: $(hostname --fqdn) | ||
33 | END | ||
34 | } | ||
35 | |||
36 | case "$# $1" in | ||
37 | "1 --fqdn" ) | ||
38 | DB_HOST=$(hostname --fqdn) | ||
39 | DB_NAME=wordpress@$DB_HOST | ||
40 | DB_USER=$DB_NAME | ||
41 | ;; | ||
42 | "3 "* ) | ||
43 | DB_NAME=$1 | ||
44 | DB_USER=$2 | ||
45 | DB_HOST=$3 | ||
46 | ;; | ||
47 | "1 -h" | "1 --help" ) | ||
48 | usage | ||
49 | exit 0 | ||
50 | ;; | ||
51 | * ) | ||
52 | usage | ||
53 | exit 1 | ||
54 | ;; | ||
55 | esac | ||
56 | for v in DB_NAME DB_USER DB_HOST | ||
57 | do | ||
58 | [ "${!v}" ] && continue | ||
59 | printf 'Error: a required environment variable is not defined: $%s\n' \ | ||
60 | "$v" >&2 | ||
61 | exit 1 | ||
62 | done | ||
63 | if ! [ -v DB_PASSWORD ] | ||
64 | then | ||
65 | DB_PASSWORD=$(rand26 32) | ||
66 | fi | ||
67 | |||
68 | declare -a WP_SALT_VARS=( | ||
69 | AUTH_KEY | ||
70 | SECURE_AUTH_KEY | ||
71 | LOGGED_IN_KEY | ||
72 | NONCE_KEY | ||
73 | AUTH_SALT | ||
74 | SECURE_AUTH_SALT | ||
75 | LOGGED_IN_SALT | ||
76 | NONCE_SALT | ||
77 | ) | ||
78 | for v in "${WP_SALT_VARS[@]}" | ||
79 | do | ||
80 | [ -v "$v" ] && [ -n "${!v}" ] && continue | ||
81 | eval "$v=\$(rand64)" && | ||
82 | eval "[ \${#$v} -gt 16 ]" || exit 4 | ||
83 | done | ||
14 | 84 | ||
15 | cat <<END | 85 | cat <<END |
16 | <?php | 86 | <?php |
@@ -63,14 +133,14 @@ define( 'DB_COLLATE', '' ); | |||
63 | * | 133 | * |
64 | * @since 2.6.0 | 134 | * @since 2.6.0 |
65 | */ | 135 | */ |
66 | define( 'AUTH_KEY', '$Random1' ); | 136 | define( 'AUTH_KEY', '$AUTH_KEY' ); |
67 | define( 'SECURE_AUTH_KEY', '$Random2' ); | 137 | define( 'SECURE_AUTH_KEY', '$SECURE_AUTH_KEY' ); |
68 | define( 'LOGGED_IN_KEY', '$Random3' ); | 138 | define( 'LOGGED_IN_KEY', '$LOGGED_IN_KEY' ); |
69 | define( 'NONCE_KEY', '$Random4' ); | 139 | define( 'NONCE_KEY', '$NONCE_KEY' ); |
70 | define( 'AUTH_SALT', '$Random5' ); | 140 | define( 'AUTH_SALT', '$AUTH_SALT' ); |
71 | define( 'SECURE_AUTH_SALT', '$Random6' ); | 141 | define( 'SECURE_AUTH_SALT', '$SECURE_AUTH_SALT' ); |
72 | define( 'LOGGED_IN_SALT', '$Random7' ); | 142 | define( 'LOGGED_IN_SALT', '$LOGGED_IN_SALT' ); |
73 | define( 'NONCE_SALT', '$Random8' ); | 143 | define( 'NONCE_SALT', '$NONCE_SALT' ); |
74 | 144 | ||
75 | /**#@-*/ | 145 | /**#@-*/ |
76 | 146 | ||