@@ -22,9 +22,12 @@ service_create() {
2222 mkdir -p " $SERVICE_ROOT " || dokku_log_fail " Unable to create service directory"
2323 mkdir -p " $SERVICE_ROOT /data" || dokku_log_fail " Unable to create service data directory"
2424 mkdir -p " $SERVICE_ROOT /config" || dokku_log_fail " Unable to create service config directory"
25+ mkdir -p " $SERVICE_ROOT /databases" || dokku_log_fail " Unable to create service database directory"
26+ mkdir -p " $SERVICE_ROOT /auth" || dokku_log_fail " Unable to create service auth directory"
27+ chmod 750 " $SERVICE_ROOT /auth"
2528 touch " $LINKS_FILE "
2629 password=$( openssl rand -hex 16)
27- echo " $password " > " $SERVICE_ROOT /PASSWORD"
30+ echo " $password " > " $SERVICE_ROOT /auth/ PASSWORD"
2831 chmod 640 " $SERVICE_ROOT /PASSWORD"
2932
3033 if [[ -n $POSTGRES_CUSTOM_ENV ]]; then
@@ -35,6 +38,33 @@ service_create() {
3538 service_create_container " $SERVICE "
3639}
3740
41+ database_create () {
42+ local SERVICE=" $1 "
43+ local NAME=" $2 "
44+ [[ -z " $SERVICE " ]] && dokku_log_fail " Please specify a name for the service"
45+ [[ -z " $NAME " ]] && dokku_log_fail " Please specify a name for the database"
46+
47+ local SERVICE_ROOT=" $PLUGIN_DATA_ROOT /$SERVICE "
48+ local SERVICE_NAME=" $( get_service_name " $SERVICE " ) "
49+
50+ dokku_log_verbose_quiet " Creating user"
51+ password=$( openssl rand -hex 16)
52+ if docker exec " $SERVICE_NAME " su - postgres -c " psql -c \" CREATE USER $NAME WITH PASSWORD '$password ';\" " 2> /dev/null; then
53+ echo " $password " > " $SERVICE_ROOT /auth/$NAME "
54+ chmod 640 " $SERVICE_ROOT /auth/$NAME "
55+ else
56+ echo ' Already exists'
57+ fi
58+
59+ dokku_log_verbose_quiet " Creating database"
60+ if docker exec " $SERVICE_NAME " su - postgres -c " createdb -E utf8 $NAME " 2> /dev/null; then
61+ touch " $SERVICE_ROOT /databases/$NAME "
62+ else
63+ echo ' Already exists'
64+ fi
65+ docker exec " $SERVICE_NAME " su - postgres -c " psql -c \" GRANT ALL PRIVILEGES ON DATABASE $NAME TO $NAME ;\" " > /dev/null
66+ }
67+
3868service_create_container () {
3969 local SERVICE=" $1 "
4070 local SERVICE_ROOT=" $PLUGIN_DATA_ROOT /$SERVICE "
0 commit comments