forked from gameontext/gameon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsubmodule.sh
executable file
·125 lines (117 loc) · 2.74 KB
/
submodule.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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/bin/bash
MODULE=$1
ACTION=$2
LIVE=$3
if [ -z $MODULE ]
then
echo "Bad Usage. Pass ModuleName (eg, auth, webapp), then (build|image) then (live|docker)"
exit 3
fi
case "$ACTION" in
build)
;;
image)
;;
*)
echo "Unknown use type $ACTION requested for module $MODULE"
exit 1;
;;
esac
case "$LIVE" in
live)
;;
docker)
;;
*)
echo "Unknown build type of $LIVE requested for module $MODULE, supported values are (live|docker)"
exit 2;
;;
esac
case "$MODULE" in
proxy)
TARGET='./proxy:/etc/haproxy'
;;
webapp)
TARGET='./webapp/src:/opt/www'
;;
*)
TARGET='./'$MODULE'/'$MODULE'-wlpcfg/servers/gameon-'$MODULE':/opt/ibm/wlp/usr/servers/defaultServer'
;;
esac
gawk '\
BEGIN { FOUND=0; INBLOCK=0; FOUNDVOLUMES=0;}\
{\
if( !INBLOCK && $1=="'$MODULE':" ) { \
INBLOCK=1; \
FOUND=1; \
VOLUMES=0; \
FOUNDVOLUMES=0; \
print $0; \
} else if( INBLOCK && /^[a-z]*:$/ ) { \
INBLOCK=0; \
if( !FOUNDVOLUMES && "'$LIVE'"=="live") { \
FOUNDVOLUMES=1;\
print " volumes:"; \
print " - '\'$TARGET\''";\
} \
print $0 \
} else if( INBLOCK && /[ #]build:.*/ ) { \
idx=match($0, "[ #]build:(.*)",matches);\
if ( "'$ACTION'" == "build" ){ \
print " build:",matches[1]; \
} else { \
print " #build:",matches[1]; \
} \
} else if( INBLOCK && /[ #]image:.*/ ) { \
idx=match($0, "[ #]image:(.*)",matches);\
if ( "'$ACTION'" == "build" ){ \
print " #image:",matches[1]; \
} else { \
print " image:",matches[1]; \
} \
} else if( INBLOCK && !VOLUMES && /[ #]volumes:.*/ ) { \
VOLUMES=1; \
FOUNDVOLUMES=1; \
FOUNDTARGET=0; \
print $0;\
} else if( INBLOCK && VOLUMES ) { \
if( /(^[ ]*$|[ ]*#.*|[ ]*-[ ]*.*)/ ) { \
if( /[ #]-[ ]*.*/ ) { \
idx=match($0,"([ #]*-[ ]*)(.*)",matches); \
if( "'\'$TARGET\''"==matches[2] ){ \
FOUNDTARGET=1; \
if( "'$LIVE'" == "live" ){ \
print " - '$TARGET'";\
} else { \
print "# - '$TARGET'";\
} \
} else { \
print $0; \
} \
} else { \
print $0;
}
} else { \
if( !FOUNDTARGET ) { \
if( "'$LIVE'" == "live" ){ \
print " - '$TARGET'";\
} else { \
print "# - '$TARGET'";\
} \
} \
VOLUMES=0; \
print $0;\
} \
} \
else print $0; \
}\
END { if ( FOUND && !FOUNDVOLUMES && "'$LIVE'"=="live") { \
print " volumes:"; \
print " - '\'$TARGET\''";\
} } \
' docker-compose.yml > docker-compose2.yml
if [ $? == 0 ]; then
rm docker-compose.yml ; mv docker-compose2.yml docker-compose.yml
else
echo "Error during yml processing, please report with log via github"
fi