summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@vps-18a7a2b7.vps.ovh.ca>2024-02-09 17:34:43 -0500
committerroot <root@vps-18a7a2b7.vps.ovh.ca>2024-02-09 17:34:43 -0500
commit4204732ee7a0dee22b2c5aa6decc600a13ca02b4 (patch)
tree78d9dc2762a3270885b926ad8c5bc3069c1ca118
parentd22e4dc2ef153334bf3c0d3b57f609e14f26a07f (diff)
rewrite create-wp-config with --fqdn functionality to derive entire config from hostname
-rwxr-xr-xwordpress/wordpress-create-wp-config112
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 2set -e
3DB_NAME=$1 3set -o pipefail
4DB_USER=$2 4
5DB_PASSWORD=$(tr -cd a-z < /dev/urandom | head -c14) 5rand64()
6Random1=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 6{
7Random2=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 7 set -- "${1:-64}"
8Random3=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 8 [ "$1" -ge 4 ] &&
9Random4=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 9 set -- "$1" "$(head -c "$(($1 * 3 / 4))" < /dev/urandom | base64)" &&
10Random5=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 10 [ "${#2}" = "$1" ] &&
11Random6=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 11 printf '%s\n' "$2"
12Random7=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 12}
13Random8=$(tr -cd 0-9a-f < /dev/urandom | head -c32) 13
14rand26()
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
23usage()
24{
25 cat <<END >&2
26Usage:
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)
33END
34}
35
36case "$# $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 ;;
55esac
56for v in DB_NAME DB_USER DB_HOST
57do
58 [ "${!v}" ] && continue
59 printf 'Error: a required environment variable is not defined: $%s\n' \
60 "$v" >&2
61 exit 1
62done
63if ! [ -v DB_PASSWORD ]
64then
65 DB_PASSWORD=$(rand26 32)
66fi
67
68declare -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)
78for v in "${WP_SALT_VARS[@]}"
79do
80 [ -v "$v" ] && [ -n "${!v}" ] && continue
81 eval "$v=\$(rand64)" &&
82 eval "[ \${#$v} -gt 16 ]" || exit 4
83done
14 84
15cat <<END 85cat <<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 */
66define( 'AUTH_KEY', '$Random1' ); 136define( 'AUTH_KEY', '$AUTH_KEY' );
67define( 'SECURE_AUTH_KEY', '$Random2' ); 137define( 'SECURE_AUTH_KEY', '$SECURE_AUTH_KEY' );
68define( 'LOGGED_IN_KEY', '$Random3' ); 138define( 'LOGGED_IN_KEY', '$LOGGED_IN_KEY' );
69define( 'NONCE_KEY', '$Random4' ); 139define( 'NONCE_KEY', '$NONCE_KEY' );
70define( 'AUTH_SALT', '$Random5' ); 140define( 'AUTH_SALT', '$AUTH_SALT' );
71define( 'SECURE_AUTH_SALT', '$Random6' ); 141define( 'SECURE_AUTH_SALT', '$SECURE_AUTH_SALT' );
72define( 'LOGGED_IN_SALT', '$Random7' ); 142define( 'LOGGED_IN_SALT', '$LOGGED_IN_SALT' );
73define( 'NONCE_SALT', '$Random8' ); 143define( 'NONCE_SALT', '$NONCE_SALT' );
74 144
75/**#@-*/ 145/**#@-*/
76 146