-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate.sh
More file actions
executable file
·128 lines (99 loc) · 2.86 KB
/
update.sh
File metadata and controls
executable file
·128 lines (99 loc) · 2.86 KB
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
125
126
127
128
#!/bin/bash
BNAME=$(basename $0)
DNAME=$(dirname $0)
# load default settings
. "$DNAME/defaults"
# load custom settings if available
[[ -r "$DNAME/settings" ]] && . "$DNAME/settings"
# create feed directory
[[ -d "feed-data" ]] || mkdir "feed-data"
# create temporary directory
[[ -d "tmp" ]] || mkdir "tmp"
declare -a GITS="${GIT_DIRS:-(release-data)}"
declare -a RESULTS=("${TEMPLATE:=jira}-bash")
for gitdir in "${GITS[@]}"
do
git -C "$DNAME" -C "$gitdir" pull || exit $?
done
readarray -t FEEDS < <("$DNAME"/field_getter.rb "${CONFIG:-config.yaml}" feed | sort -u)
for feed in "${FEEDS[@]}"
do
"$DNAME"/feed_transformer.rb "$feed" || exit $?
done
readarray -t FILES < <("$DNAME"/field_getter.rb | sort -u)
if ([[ -v APIBULK ]] && [[ -n "$APIBULK" ]])
then
for file in "${FILES[@]}"
do
if REQUEST=$("$DNAME"/generate_changerequest.rb -b -s "$file" ${REQARGS:-})
then
if ! grep -F -q "no updates available" <<< "$REQUEST"
then
if grep -F -q "issueUpdates" <<< "$REQUEST"
then
if RESULTS+=("$(curl -k -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d @- "$THOST$APIBULK" <<< "$REQUEST")")
then
cp -f "$file" tmp/ || exit $?
else
exit $?
fi
else
if RESULTS+=("$(curl -k -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d @- "$THOST$API" <<< "$REQUEST")")
then
cp -f "$file" tmp/ || exit $?
else
exit $?
fi
fi
fi
else
exit $?
fi
done
else
for file in "${FILES[@]}"
do
readarray -d '' -t REQUESTS < <("$DNAME"/generate_changerequest.rb -s "$file" ${REQARGS:-} || printf 'ERROR: %s\n' $?)
if ([[ -v REQUESTS ]] && [[ -n "${REQUESTS[@]}" ]])
then
for request in "${REQUESTS[@]}"
do
if ! grep -q "^ERROR:" <<< "$request"
then
if ! grep -F -q "no updates available" <<< "$request"
then
if RESULTS+=("$(curl -k -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d @- "$THOST$API" <<< "$request")")
then
cp -f "$file" tmp/ || exit $?
else
exit $?
fi
fi
else
exit 4
fi
done
else
exit 4
fi
done
fi
"$DNAME"/generate_callback.rb "${RESULTS[@]}" || exit $?
if ([[ -v CALLBACK ]] && [[ -n "$CALLBACK" ]] && [[ -v CSTYLE ]] && [[ -n "$CSTYLE" ]])
then
RESULTS[0]="$TEMPLATE-$CSTYLE"
if ([[ -v TBASE ]] && [[ -n "$TBASE" ]])
then
export TBASEURL="$THOST$TBASE"
fi
if CBACK=$("$DNAME"/generate_callback.rb "${RESULTS[@]}")
then
if ! grep -F -q "no updates available" <<< "$CBACK"
then
curl -k -s -H "Authorization: Bearer $CTOKEN" -H "Content-Type: application/json" -H "Accept: application/json" -H "OCS-APIRequest: true" -X POST -d @- "$CALLBACK" <<< "$CBACK" || exit $?
fi
else
exit $?
fi
fi
exit 0