-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdev.sh
executable file
·103 lines (86 loc) · 1.87 KB
/
dev.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
98
99
100
101
102
103
#!/bin/bash
PUBLISH_TOPIC=gateway.publish
SUBSCRIBE_TOPIC=gateway.subscribe
SUBSCRIBE_GROUP_ID=gateway
TIMEOUT=30
DOCKER_IMAGE=s7i/kafka-gateway
DOCKER_NETWORK=dev-network
main () {
case $1 in
run)
run $2
;;
dr)
dockerRun $2
;;
db)
dockerBuild
;;
win)
buildWindwsBins
;;
test)
runTest
;;
*)
badOpt $@
esac
}
function asYaml() {
cat <<EOF
app:
port: 8080
timeout: ${TIMEOUT}
jwt-chk: false
id-gen-type: uuid
context: /
pub:
topic: ${PUBLISH_TOPIC}
properties:
- "bootstrap.servers=${BROKER}"
sub:
topic: ${SUBSCRIBE_TOPIC}
properties:
- "bootstrap.servers=${BROKER}"
- "group.id=${SUBSCRIBE_GROUP_ID}"
- "auto.offset.reset=earliest"
EOF
}
badOpt() {
echo bad options: $@
}
run() {
export BROKER=$1
export PUBLISH_TOPIC=$PUBLISH_TOPIC
export SUBSCRIBE_TOPIC=$SUBSCRIBE_TOPIC
export SUBSCRIBE_GROUP_ID=$SUBSCRIBE_GROUP_ID
export TIMEOUT=$TIMEOUT
./kafka-gateway
}
dockerRun() {
docker run \
--name kafka-gateway \
-p 8080:8080 \
-e BROKER=$1 \
-e PUBLISH_TOPIC=$PUBLISH_TOPIC \
-e SUBSCRIBE_TOPIC=$SUBSCRIBE_TOPIC \
-e SUBSCRIBE_GROUP_ID=$SUBSCRIBE_GROUP_ID \
-e TIMEOUT=$TIMEOUT \
--network $DOCKER_NETWORK\
-it --rm $DOCKER_IMAGE
}
dockerBuild() {
local VCS_REF=$(git_ref)
echo "[Docker Build] tag: $DOCKER_IMAGE, git-ref: $VCS_REF"
docker build -t $DOCKER_IMAGE --build-arg BUILD_DATE="$(date +"%Y-%m-%dT%H:%M:%S%z")" --build-arg VCS="$VCS_REF" .
}
buildWindwsBins() {
GOOS=windows GOARCH=amd64 go build -o bin/gateway-amd64.exe
}
runTest() {
go test -v -timeout 30s ./internal/*
}
git_ref() {
echo "$(git rev-parse --abbrev-ref HEAD) @ $(git rev-parse HEAD)"
}
main $@