-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpull_test.sh
executable file
·67 lines (59 loc) · 1.59 KB
/
pull_test.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
#!/bin/bash
SECONDS=0
### Usage
function display_usage() {
echo "=== Puller Test Utility ==="
echo -e "\nUsage:\n$0 [arguments] <image file>\n"
echo -e "Arguments:"
echo -e " --pull_and_delete Pull image and delete immidiatly"
echo -e " --pull_all_and_delete Pull all images and then delete them"
echo -e " --just_pull Pull all images"
echo -e ""
}
### Just pull
function just_pull() {
while read IMAGE_NAME
do
echo "docker pull $IMAGE_NAME"
docker pull $IMAGE_NAME
done < $1
}
### Pull image and delete it immidiatly after pull
function pull_and_delete_immediately() {
while read IMAGE_NAME
do
echo "docker pull $IMAGE_NAME"
docker pull $IMAGE_NAME
echo "docker rmi -f $IMAGE_NAME"
docker rmi -f $IMAGE_NAME
done < $1
}
### Pull image and delete it immidiatly after pull
function pull_all_and_delete() {
while read IMAGE_NAME
do
echo "docker pull $IMAGE_NAME"
docker pull $IMAGE_NAME
done < $1
while read IMAGE_NAME
do
echo "docker rmi -f $IMAGE_NAME"
docker rmi -f $IMAGE_NAME
done < $1
}
### Main
if [ "$1" == "--pull_and_delete" ]
then
pull_and_delete_immediately $2
elif [ "$1" == "--pull_all_and_delete" ]
then
pull_all_and_delete $2
elif [ "$1" == "--just_pull" ]
then
just_pull $2
else
display_usage
exit
fi
duration=$SECONDS
echo "$(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."