-
Notifications
You must be signed in to change notification settings - Fork 41
/
pop_script.sh
67 lines (49 loc) · 1.33 KB
/
pop_script.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
[ "$#" -ne 0 ] && { ( $@ ); exit; }
[ -z $TARGET_BRANCH ] && TARGET_BRANCH='master'
[ -z $CX_PRESET ] && CX_PRESET='All'
[ -z $HASH_STEP ] && HASH_STEP=10
# Clone the branch locally.
git clone --single-branch --branch $TARGET_BRANCH $GIT_URL /code
pushd /code
# Get the commits in reverse order
git log --oneline --reverse | sed -r 's/^([a-z0-9]+?)\s{1}.*$/\1/g' > /branches.txt
((count=0))
[ ! -z $START_HASH ] && ((skip=1)) || ((skip=0))
for HASH in $(cat /branches.txt)
do
if [ $skip -ne 0 ];
then
if [ $HASH == $START_HASH ];
then
((skip=0))
echo Starting at next commit after $HASH
fi
continue
fi
((check=count%$HASH_STEP))
((count = count + 1))
if [ $check -ne 0 ];
then
echo Skipping $HASH
continue
fi
echo
echo ------ HASH: $HASH
echo ------ PROJECT: $CX_PROJECT
git checkout $HASH
/opt/cxcli/runCxConsole.sh Scan \
-cxuser "$CX_USER" \
-cxpassword "$CX_PASSWORD" \
-cxserver "$CX_SERVER" \
-projectname "$CX_PROJECT" \
-locationtype folder \
-locationpath "/code" \
-preset "$CX_PRESET" \
-comment "Hash: $HASH" \
-enableOsa \
-OsaLocationPath "/code" \
-executepackagedependency
git checkout -- /code
git checkout $TARGET_BRANCH
export HASH=""
done