-
Notifications
You must be signed in to change notification settings - Fork 151
/
Copy pathtool.sh
executable file
·97 lines (89 loc) · 2.71 KB
/
tool.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
#!/usr/bin/env bash
grafana_version='6.7.3'
docker_user='w958660278'
console() {
content=$2
case $1 in
"br") echo -e "\033[36m------------------------------\033[0m" ;;
"info") echo -e "\033[36m$content\033[0m" ;;
"action") echo -e "\033[36m$content\033[0m" ;;
"success") echo -e "\033[32m$content\033[0m" ;;
"error") echo -e "\033[31m$content\033[0m" ;;
"warning") echo -e "\033[33m$content\033[0m" ;;
"danger") echo -e "\033[35m$content\033[0m" ;;
esac
}
initDevProject() {
console br
console info 'Init-tool'
console br
console action 'Clone source from https://github.com/WangHL0927/grafana.git'
git clone https://github.com/WangHL0927/grafana.git
cd ./grafana
console action 'Run yarn install...'
yarn install
console success 'Init dev success!'
}
releaseDockerDev() {
console br
console info "Release Dev version and push to DockerHub"
console danger "The full tag name like grafana-cn:$grafana_version.0001-dev"
console danger "Input build version and press ENTER:[eg. 0002]"
read version
tag="$docker_user/grafana-cn:$grafana_version.$version-dev"
tag2="$docker_user/grafana-cn:latest-dev"
console action "Build and push $grafana_version.$version-dev..."
rm -rf ./grafana/public/build/*.js.map
docker build -t $tag .
docker push $tag
console action "Push latest-dev..."
docker tag $tag $tag2
docker push $tag2
console success 'Release success!'
}
releaseDocker() {
console br
console info "Release Latest version and push to DockerHub"
console danger "The full tag name like grafana-cn:$grafana_version.0001"
console danger "Input build version and press ENTER:[eg. 0002]"
read version
tag="$docker_user/grafana-cn:$grafana_version.$version"
tag2="$docker_user/grafana-cn:latest"
console action "Build and push $grafana_version.$version..."
rm -rf ./grafana/public/build/*.js.map
docker build -t $tag .
docker push $tag
console action "Push latest..."
docker tag $tag $tag2
docker push $tag2
console success 'Release success!'
}
printMenu() {
console br
console info "Tool Script"
console br
console info "1. Start dev-server."
console info "2. Stop/Remove dev-server."
console info "3. Restart dev-server."
console info "4. Release to DockerHub with dev tag."
console info "5. Release to DockerHub with latest tag."
console info "6. Init dev project."
console br
console danger "Input number and press ENTER:"
}
main() {
printMenu
read num
case $num in
"1") ./dev-server/dev-server.sh ;;
"2") ./dev-server/remove-dev-server.sh ;;
"3") ./dev-server/restart-dev-server.sh ;;
"4") releaseDockerDev ;;
"5") releaseDocker ;;
"6") initDevProject ;;
*)
console error "ERROR: undefined function!"
exit;;
esac
}
main