-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathstart.sh
executable file
·97 lines (81 loc) · 3.61 KB
/
start.sh
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
#!/bin/bash
# sh start.sh
# sh start.sh -d
# sh start.sh --download
export SERVER_NAME=OTServBR
export DATABASE_NAME=otservdb
export DATABASE_USER=otserv
export DATABASE_PASSWORD=noob
export DOCKER_NETWORK_GATEWAY=192.168.128.1
export DOCKER_NETWORK_CIDR=192.168.128.0/20
# realiza o download do servidor quando o parâmetro posicional '-d' ou '--download' é fornecido
if [[ "$1" == "-d" ]] || [[ "$1" == "--download" ]]; then
printf "[INFO] iniciando download do servidor! \n"
readonly tag=v2.6.1
readonly package=canary-v2.6.1-ubuntu-22.04-executable+server.zip
# verifica se o arquivo zip do servidor está presente
if [ ! -f "server/$package" ]; then
download_url=https://github.com/opentibiabr/canary/releases/download/$tag/$package
wget --show-progress -P server/ $download_url
# se a saída do comando anterior(wget) for diferente de 0 significa que ocorreu um erro
# https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html
exit_status=$?
if [ ! $exit_status -eq 0 ]; then
echo "[ERROR] erro durante o wget - $exit_status"
exit 1
fi
echo "[INFO] sucesso durante o wget!"
fi
# descompacta os arquivos do servidor na pasta 'server/'
unzip -o -d server/ server/$package &> /dev/null
exit_status=$?
if [ ! $exit_status -eq 0 ]; then
echo "[ERROR] erro durante o unzip - $exit_status"
exit 1
fi
echo "[INFO] sucesso durante o unzip!"
# verifica a presença dos arquivos que compõe o servidor
if [ ! -d "server/" ] ||
[ ! -d "server/data" ] ||
[ ! -d "server/data-otservbr-global" ] ||
[ ! -f "server/schema.sql" ] ||
[ ! -f "server/canary" ];
then
echo "[ERROR] arquivos do servidor não foram encontrados! reexecute o script com a flag '-d' ou '--download'"
exit 1
fi
# copia o 'server/schema.sql' para 'sql/00_schema.sql'
# altera as permissões do arquivo 'server/canary' para que seja possível executa-lo
cp server/schema.sql sql/00_schema.sql
chmod +x server/canary
# remove arquivos desnecessarios
rm -r server/.github server/cmake server/data-canary server/docker \
server/docs server/src server/tests server/.editorconfig server/.gitignore \
server/.reviewdog.yml server/.yamllint.yaml server/canary.rc server/CMakeLists.txt \
server/CMakePresets.json server/CODE_OF_CONDUCT.md server/gdb_debug server/GitVersion.yml \
server/Jenkinsfile server/package.json server/recompile.sh server/sonar-project.properties \
server/start_gdb.sh server/start.sh server/vcpkg.json
echo "[INFO] download concluído, arquivos do servidor extraídos em 'server/'"
echo
fi
# iniciando os containers
echo "[INFO] iniciando containers: MySQL, Ubuntu, PhpMyAdmin e PHP!"
docker-compose up -d
# instalando extensão no container php
if [ "$(docker exec php bash -c "php -m | grep mysqli")" = "" ]; then
docker exec -i php bash <<-EOF
chmod -R 777 /var/www/*
docker-php-ext-install mysqli &> /dev/null
apachectl restart &> /dev/null
EOF
fi
# exibindo status dos containers
echo
echo "[INFO] phpMyAdmin address -> http://localhost:9090/"
echo "[INFO] php login server address -> http://localhost:8080/login.php"
echo "[INFO] server name -> $SERVER_NAME"
echo "[INFO] database name -> $DATABASE_NAME"
echo "[INFO] database user/pass -> $DATABASE_USER / $DATABASE_PASSWORD"
echo
echo "[INFO] inicialização concluida"
echo