-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathsetup
More file actions
142 lines (112 loc) · 3.89 KB
/
setup
File metadata and controls
142 lines (112 loc) · 3.89 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
cd $DEV_PATH;
echo 'Development setup';
echo '';
setup() {
mysql() {
if [ -z "`${DEV_SUDO} docker volume ls -q -f 'name=dockerdev-mysql-volume'`" ]; then
echo 'Create a persistant database volume';
${DEV_SUDO} docker volume create dockerdev-mysql-volume;
fi
./${DEV_SELF} setup-mysql db;
return $?;
}
workspace() {
if [ -z "`${DEV_SUDO} docker volume ls -q -f 'name=dockerdev-workspace-volume'`" ]; then
echo 'Create workspace volume in location '${DEV_WORKSPACE_PATH};
${DEV_SUDO} docker volume create -o 'type=none' -o 'device='${DEV_WORKSPACE_PATH} -o 'o=bind' dockerdev-workspace-volume
fi
}
php() {
dc php && echo 'PHP configured with version '${DEV_PHP} && return 1;
local versions="`dc php_versions`" version='';
echo "Which default PHP version should we enable";
for v in ${versions}; do
echo "- ${v}";
done
read -p'? ' version;
[ -z "${version}" ] && return 1;
touch ${DEV_WORKSPACE_PATH}/.${version};
echo 'COMPOSER_MEMORY_LIMIT=-1' >> ${DEV_WORKPATH}/.env;
return 0;
}
suffix() {
if [ -n "${DOMAINSUFFIX}" ]; then
echo 'Listening on "*'${DOMAINSUFFIX}'"';
return 1;
fi
local suffix='' default='.localhost';
echo 'Which domain suffix do you want to listen to - default: '${default}'';
read -p' ' suffix;
if [ -z "${suffix}" ]; then
suffix=${default};
fi
echo 'DOMAINSUFFIX='${suffix} >> ${DEV_WORKPATH}/.env;
export DOMAINSUFFIX=${suffix};
return 0;
}
ngrok() {
if [ -z "`${DEV_SUDO} docker volume ls -q -f 'name=dockerdev-ngrok-volume'`" ]; then
echo 'Create ngrok volume in location '${DEV_WORKSPACE_PATH}/ngrok.yml;
mkdir ${DEV_WORKSPACE_PATH}/.ngrok -p
! test -f "${DEV_WORKSPACE_PATH}/.ngrok/ngrok.yml" && echo 'version: 2' > ${DEV_WORKSPACE_PATH}/.ngrok/ngrok.yml
${DEV_SUDO} docker volume create -o 'type=none' -o 'device='${DEV_WORKSPACE_PATH}/.ngrok -o 'o=bind' dockerdev-ngrok-volume
fi
}
feature() {
local name="$1" file="${DEV_WORKPATH}/conf/$2"
local endis="$3" a="";
if [ -z "${endis}" ]; then
if [ -e ${file} ]; then
endis='n'
else
endis='y'
fi
fi
if [ "${endis}" == 'y' ]; then
echo "The service '${name}' is currently DISABLED, type Y to ENABLE the service '${name}'? (press enter to skip)";
else
echo "The service '${name}' is currently ENABLED, typing Y will DISABLE the service '${name}'? (press enter to leave unchanged)";
fi
while read -p'? (N/y)' -n1 a; do
echo '';
if [ "${a}" == 'Y' ] || [ "${a}" == 'y' ]; then
break;
elif [ -z "${a}" ] || [ "${a}" == 'N' ] || [ "${a}" == 'n' ]; then
return 0;
fi
done
if [ "${endis}" == 'y' ]; then
touch ${file};
else
rm -f ${file} 2>&1 >/dev/null;
fi
}
start() {
./${DEV_SELF} up;
}
shell() {
echo '';
echo 'Add next lines to your shell to implement `cdw`(to workspace) and `dev` to PATH';
echo '';
./${DEV_SELF} profile;
}
suffix;
php;
workspace;
ngrok;
mysql;
feature RabbitMQ rabbitmq;
feature "Percona 8" mysql8;
feature "ElasticSearch 6.5.4" elasticsearch;
feature "ElasticSearch 7.9.1" elasticsearch7;
feature "ElasticSearch HQ" elasticsearchhq;
feature "ElasticSearch VUE" elasticvue;
feature "Opensearch" opensearch;
feature "Opensearch dashboard" opensearch-dashboard;
feature MongoDB mongo;
feature FTP ftp;
start;
shell;
}
setup;
return 0;