1+ #! /usr/bin/env bash
2+
3+ set -eu
4+
5+ # 脚本所在目录
6+ CWD=$( dirname $( readlink -f " $0 " ) )
7+ # 数据目录
8+ DIR_DATA=${CWD} /data
9+ DIR_LOGS=${CWD} /logs
10+ DIR_SERVICES=${CWD} /services
11+
12+ # 输出
13+ message () {
14+ if [[ $# -lt 1 ]]; then
15+ return
16+ fi
17+
18+ echo -e " # $1 "
19+ }
20+
21+ # 初始化 docker-compose.yml 和 .env 文件
22+ init_startup_files () {
23+ message " 进入 ${CWD} "
24+ cd $CWD
25+
26+ message " 正在初始化 docker-compose.yml"
27+ if [[ -f docker-compose.yml ]]; then
28+ message " docker-compose.yml 文件已存在"
29+ else
30+ cp docker-compose.yml.example docker-compose.yml
31+ message " docker-compose.yml 初始化成功"
32+ fi
33+
34+ message " 正在初始化 .env"
35+ if [[ -f .env ]]; then
36+ message " .env 文件已存在"
37+ else
38+ cp .env.example .env
39+ message " .env 初始化成功"
40+ fi
41+ }
42+
43+ # 初始化 DIR_DATA
44+ init_data () {
45+ if [[ $# -lt 1 ]]; then
46+ return
47+ fi
48+
49+ if [[ ! -d $1 ]]; then
50+ message " ${1} 不是有效的目录"
51+ return
52+ fi
53+
54+ message " 遍历目录 ${1} "
55+ for file in ` ls -A ${1} `
56+ do
57+ local item=$1 /$file
58+ if [[ -d $item ]]; then
59+ message " 处理目录 ${item} "
60+ chmod 777 $item
61+ init_data $item
62+ fi
63+ done
64+ }
65+
66+ # 初始化 DIR_LOGS
67+ init_logs () {
68+ if [[ $# -lt 1 ]]; then
69+ return
70+ fi
71+
72+ if [[ ! -d $1 ]]; then
73+ message " ${1} 不是有效的目录"
74+ return
75+ fi
76+
77+ message " 遍历目录 ${1} "
78+ for file in ` ls -A ${1} `
79+ do
80+ local item=$1 /$file
81+ if [[ -d $item ]]; then
82+ message " 处理目录 ${item} "
83+ chmod 777 $item
84+ init_logs $item
85+ fi
86+ done
87+ }
88+
89+ # 初始化 DIR_SERVICES
90+ init_services () {
91+ if [[ $# -lt 1 ]]; then
92+ return
93+ fi
94+
95+ if [[ ! -d $1 ]]; then
96+ message " ${1} 不是有效的目录"
97+ return
98+ fi
99+
100+ message " 遍历目录 ${1} "
101+ for file in ` ls -A ${1} `
102+ do
103+ local item=$1 /$file
104+ if [[ -d $item ]]; then
105+ message " 处理目录 ${item} "
106+ chmod 777 $item
107+ init_services $item
108+ elif [[ -f $item ]]; then
109+ message " 处理文件 ${item} "
110+ chmod 644 $item
111+ fi
112+ done
113+ }
114+
115+ message " ##############################################"
116+ message " 正在初始化文件"
117+ message " ##############################################"
118+ init_startup_files
119+
120+ message " ##############################################"
121+ message " 正在初始化 ${DIR_DATA} "
122+ message " ##############################################"
123+ init_data $DIR_DATA
124+
125+ message " ##############################################"
126+ message " 正在初始化 ${DIR_LOGS} "
127+ message " ##############################################"
128+ init_logs $DIR_LOGS
129+
130+ message " ##############################################"
131+ message " 正在初始化 ${DIR_SERVICES} "
132+ message " ##############################################"
133+ init_services $DIR_SERVICES
134+
135+ message " ##############################################"
136+ message " 处理完毕"
137+ message " ##############################################"
0 commit comments