-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathrun_command_on_multiple_items.sh
More file actions
executable file
·79 lines (62 loc) · 1.93 KB
/
Copy pathrun_command_on_multiple_items.sh
File metadata and controls
executable file
·79 lines (62 loc) · 1.93 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
#!/bin/bash
help() {
echo "Usage:"
echo "run_command_on_multiple_items.sh -p PROJECT_ID -e ENVIRONMENT -c domain:add -d 'domain1.com,domain2.com,domain3.com'"
echo "run_command_on_multiple_items.sh -p PROJECT_ID -e ENVIRONMENT -c domain:delete -d 'domain1.com,domain2.com,domain3.com'"
echo " "
echo "run_command_on_multiple_items.sh -p PROJECT_ID -e ENVIRONMENT -c user:delete -d 'user1@domain.com,user2@domain.com'"
exit 0
}
cancel_all_activities() {
for activity_id in $(platform activities -p $PROJECT_ID --all --columns ID,State --limit 20 --format csv --no-header | grep "pending" | cut -d, -f1); do
echo "Cancelling $activity_id"
platform p:curl -XPOST /environments/$ENVIRONMENT/activities/$activity_id/cancel -p $PROJECT_ID
done
}
run_command() {
IFS=','; arr_items=($1); unset IFS;
for item in "${arr_items[@]}"
do
echo "Running command: platform $COMMAND -p $PROJECT_ID $item --no-wait --yes $EXTRA"
platform $COMMAND -p $PROJECT_ID $item --no-wait --yes $EXTRA
done
}
while getopts p:e:r:d:c:z: option
do
case "${option}"
in
p) PROJECT_ID=${OPTARG};;
e) ENVIRONMENT=${OPTARG};;
d) ITEMS=${OPTARG};;
c) COMMAND=${OPTARG};;
z) EXTRA=${OPTARG};;
esac
done
if [ "$PROJECT_ID" = "" ]; then
help
fi
if [ "$ENVIRONMENT" = "" ]; then
help
fi
if [ "$COMMAND" = "" ]; then
help
fi
if [[ "$ITEMS" == *"="* ]]; then
# make name=value -> --name=$name --value=$value
arr_items=($(echo "$ITEMS" | tr "," "\n"))
ITEMS=""
for item in "${arr_items[@]}"
do
# split the key=value into an array
IFS='='; arrItem=($item); unset IFS;
item_name="${arrItem[0]}"
item_value="${arrItem[1]}"
ITEMS="$ITEMS --name=$item_name --value=\"$item_value\","
done
fi
if [ "$ITEMS" = "" ]; then
help
fi
run_command "$ITEMS" "$KEEP_ENVIRONMENT"
cancel_all_activities
platform redeploy -p $PROJECT_ID -e $ENVIRONMENT --yes