11#! /bin/bash
22
3+ # @description Build single docker flutter builde image
4+ #
5+ # @example
6+ # buildDockerImage 29.0.2
7+ #
8+ # @arg $1 Build tools and final image tag, i.e. "29.0.2"
9+ #
10+ # @exitcode The exit code of the build
11+ #
12+ # @stdout The error message of the build
13+ #
14+ function buildDockerImage() {
15+ # Init
16+ local imageTag
17+ local buildTools
18+ local platformTools
19+ platformTools=$( echo " android-$1 " | cut -f 1 -d " ." )
20+ buildTools=$1
21+ imageTag=$buildTools
22+
23+ echo " # Building 'pedroamador/docker-flutter-builder:${imageTag} ' docker image with '${platformTools} ' platform tools and '${buildTools} ' build tools"
24+ echo
25+ docker build --build-arg PLATFORM_TOOLS=" ${platformTools} " --build-arg BUILD_TOOLS=" ${buildTools} " -t pedroamador/docker-flutter-builder:" ${imageTag} " .
26+ }
27+
328# @description Build all docker images
429#
530# @example
1136#
1237# @stdout "Not implemented" message if the requested task is not implemented
1338#
14- function hello-world () {
39+ function build-all () {
1540
1641 # Init
17- local briefMessage=" Build all docker images"
18- local helpMessage=" " " Build all docker images of the Docker Flutter Builder.
42+ local briefMessage
43+ local helpMessage
44+ briefMessage=" Build all docker images"
45+ helpMessage=$( cat << EOF
46+ Build all docker images of the Docker Flutter Builder.
1947
2048The build include the following tags of the <teecke/docker-flutter-builder> docker image based on the specified platform tools / build tools:
2149
22- Docker Image Tag Platform Tools Build Tools
23- ================ ============== ==========
24- 29.0.2 android-29 29.0.2
25- 29.0.0 android-29 29.0.0
26- 28.0.3 android-28 28.0.3
27- 28.0.2 android-28 28.0.2
28- 27.0.3 android-27 27.0.3
29- 27.0.2 android-27 27.0.2
30- 27.0.1 android-27 27.0.1
31- 26.0.2 android-26 26.0.2
32- 26.0.1 android-26 26.0.1
33- 26.0.0 android-26 26.0.0
34- 25.0.3 android-25 25.0.3
35- 25.0.2 android-25 25.0.2
36- 25.0.1 android-25 25.0.1
37- 25.0.0 android-25 25.0.0
38- 24.0.3 android-24 24.0.3
39- 23.0.3 android-23 23.0.3
40- 23.0.2 android-23 23.0.2
41- 23.0.1 android-23 23.0.1
42- 23.0.0 android-23 23.0.0
43- 22.0.1 android-22 22.0.1
44- 22.0.0 android-22 22.0.0
45- 21.1.2 android-21 21.1.2
46- 21.1.1 android-21 21.1.1
47- 21.1 android-21 21.1
48- 21.0.2 android-21 21.0.2
49- 21.0.1 android-21 21.0.1
50- 21.0.0 android-21 21.0.0
51- 20.0.0 android-20 20.0.0
52- 19.1.0 android-19 19.1.0
53- 19.0.3 android-19 19.0.3
54- 19.0.2 android-19 19.0.2
55- 19.0.1 android-19 19.0.1
56- 19 android-19 19
57- 18.1.1 android-18 18.1.1
58- 18.1.0 android-18 18.1.0
59- 18.0.1 android-18 18.0.1
60- 17 android-17 17
61-
62- " " "
50+ Build Tools
51+ ==========
52+ "${buildToolsList} "
53+ EOF
54+ )
6355
6456 # Task choosing
6557 case $1 in
6658 brief)
67- showBriefMessage ${FUNCNAME[0]} " $briefMessage "
59+ showBriefMessage " ${FUNCNAME[0]} " " $briefMessage "
6860 ;;
6961 help)
70- showHelpMessage ${FUNCNAME[0]} " $helpMessage "
62+ showHelpMessage " ${FUNCNAME[0]} " " $helpMessage "
7163 ;;
7264 exec)
73- docker build --build-arg PLATFORM_TOOLS=android-29 --build-arg BUILD_TOOLS=29.0.2 -t pedroamador/docker-flutter-builder:29.0.2 .
74- docker build --build-arg PLATFORM_TOOLS=android-29 --build-arg BUILD_TOOLS=29.0.0 -t pedroamador/docker-flutter-builder:29.0.0 .
75- docker build --build-arg PLATFORM_TOOLS=android-28 --build-arg BUILD_TOOLS=28.0.3 -t pedroamador/docker-flutter-builder:28.0.3 .
76- docker build --build-arg PLATFORM_TOOLS=android-28 --build-arg BUILD_TOOLS=28.0.2 -t pedroamador/docker-flutter-builder:28.0.2 .
77- docker build --build-arg PLATFORM_TOOLS=android-27 --build-arg BUILD_TOOLS=27.0.3 -t pedroamador/docker-flutter-builder:27.0.3 .
78- docker build --build-arg PLATFORM_TOOLS=android-27 --build-arg BUILD_TOOLS=27.0.2 -t pedroamador/docker-flutter-builder:27.0.2 .
79- docker build --build-arg PLATFORM_TOOLS=android-27 --build-arg BUILD_TOOLS=27.0.1 -t pedroamador/docker-flutter-builder:27.0.1 .
80- docker build --build-arg PLATFORM_TOOLS=android-26 --build-arg BUILD_TOOLS=26.0.2 -t pedroamador/docker-flutter-builder:26.0.2 .
81- docker build --build-arg PLATFORM_TOOLS=android-26 --build-arg BUILD_TOOLS=26.0.1 -t pedroamador/docker-flutter-builder:26.0.1 .
82- docker build --build-arg PLATFORM_TOOLS=android-26 --build-arg BUILD_TOOLS=26.0.0 -t pedroamador/docker-flutter-builder:26.0.0 .
83- docker build --build-arg PLATFORM_TOOLS=android-25 --build-arg BUILD_TOOLS=25.0.3 -t pedroamador/docker-flutter-builder:25.0.3 .
84- docker build --build-arg PLATFORM_TOOLS=android-25 --build-arg BUILD_TOOLS=25.0.2 -t pedroamador/docker-flutter-builder:25.0.2 .
85- docker build --build-arg PLATFORM_TOOLS=android-25 --build-arg BUILD_TOOLS=25.0.1 -t pedroamador/docker-flutter-builder:25.0.1 .
86- docker build --build-arg PLATFORM_TOOLS=android-25 --build-arg BUILD_TOOLS=25.0.0 -t pedroamador/docker-flutter-builder:25.0.0 .
87- docker build --build-arg PLATFORM_TOOLS=android-24 --build-arg BUILD_TOOLS=24.0.3 -t pedroamador/docker-flutter-builder:24.0.3 .
88- docker build --build-arg PLATFORM_TOOLS=android-23 --build-arg BUILD_TOOLS=23.0.3 -t pedroamador/docker-flutter-builder:23.0.3 .
89- docker build --build-arg PLATFORM_TOOLS=android-23 --build-arg BUILD_TOOLS=23.0.2 -t pedroamador/docker-flutter-builder:23.0.2 .
90- docker build --build-arg PLATFORM_TOOLS=android-23 --build-arg BUILD_TOOLS=23.0.1 -t pedroamador/docker-flutter-builder:23.0.1 .
91- docker build --build-arg PLATFORM_TOOLS=android-23 --build-arg BUILD_TOOLS=23.0.0 -t pedroamador/docker-flutter-builder:23.0.0 .
92- docker build --build-arg PLATFORM_TOOLS=android-22 --build-arg BUILD_TOOLS=22.0.1 -t pedroamador/docker-flutter-builder:22.0.1 .
93- docker build --build-arg PLATFORM_TOOLS=android-22 --build-arg BUILD_TOOLS=22.0.0 -t pedroamador/docker-flutter-builder:22.0.0 .
94- docker build --build-arg PLATFORM_TOOLS=android-21 --build-arg BUILD_TOOLS=21.1.2 -t pedroamador/docker-flutter-builder:21.1.2 .
95- docker build --build-arg PLATFORM_TOOLS=android-21 --build-arg BUILD_TOOLS=21.1.1 -t pedroamador/docker-flutter-builder:21.1.1 .
96- docker build --build-arg PLATFORM_TOOLS=android-21 --build-arg BUILD_TOOLS=21.1 -t pedroamador/docker-flutter-builder:21.1 .
97- docker build --build-arg PLATFORM_TOOLS=android-21 --build-arg BUILD_TOOLS=21.0.2 -t pedroamador/docker-flutter-builder:21.0.2 .
98- docker build --build-arg PLATFORM_TOOLS=android-21 --build-arg BUILD_TOOLS=21.0.1 -t pedroamador/docker-flutter-builder:21.0.1 .
99- docker build --build-arg PLATFORM_TOOLS=android-21 --build-arg BUILD_TOOLS=21.0.0 -t pedroamador/docker-flutter-builder:21.0.0 .
100- docker build --build-arg PLATFORM_TOOLS=android-20 --build-arg BUILD_TOOLS=20.0.0 -t pedroamador/docker-flutter-builder:20.0.0 .
101- docker build --build-arg PLATFORM_TOOLS=android-19 --build-arg BUILD_TOOLS=19.1.0 -t pedroamador/docker-flutter-builder:19.1.0 .
102- docker build --build-arg PLATFORM_TOOLS=android-19 --build-arg BUILD_TOOLS=19.0.3 -t pedroamador/docker-flutter-builder:19.0.3 .
103- docker build --build-arg PLATFORM_TOOLS=android-19 --build-arg BUILD_TOOLS=19.0.2 -t pedroamador/docker-flutter-builder:19.0.2 .
104- docker build --build-arg PLATFORM_TOOLS=android-19 --build-arg BUILD_TOOLS=19.0.1 -t pedroamador/docker-flutter-builder:19.0.1 .
105- docker build --build-arg PLATFORM_TOOLS=android-19 --build-arg BUILD_TOOLS=19 -t pedroamador/docker-flutter-builder:19 .
106- docker build --build-arg PLATFORM_TOOLS=android-18 --build-arg BUILD_TOOLS=18.1.1 -t pedroamador/docker-flutter-builder:18.1.1 .
107- docker build --build-arg PLATFORM_TOOLS=android-18 --build-arg BUILD_TOOLS=18.1.0 -t pedroamador/docker-flutter-builder:18.1.0 .
108- docker build --build-arg PLATFORM_TOOLS=android-18 --build-arg BUILD_TOOLS=18.0.1 -t pedroamador/docker-flutter-builder:18.0.1 .
109- docker build --build-arg PLATFORM_TOOLS=android-17 --build-arg BUILD_TOOLS=17 -t pedroamador/docker-flutter-builder:17 .
65+
66+ for buildToolsVersion in $( echo " ${buildToolsList} " | tr ' ' ' \n' ) ; do
67+ buildDockerImage " ${buildToolsVersion} "
68+ done
11069 ;;
11170 * )
112- showNotImplemtedMessage $1 ${FUNCNAME[0]}
71+ showNotImplemtedMessage " $1 " " ${FUNCNAME[0]} "
11372 return 1
11473 esac
11574}
11675
11776# Main
118- hello-world " $@ "
77+ cd " $( dirname " $0 " ) /../.." || exit
78+ buildToolsList=$( cat build-tools.list)
79+ build-all " $@ "
0 commit comments