@@ -10,16 +10,22 @@ container_name_server=server
10
10
path_postgresql=/var/lib/postgresql
11
11
path_db_content=$path_postgresql /dbContent
12
12
13
+ aircraft_database_zipfilename=aircraftDatabase.zip
13
14
aircraft_database_filename=aircraftDatabase.csv
14
15
airport_database_filename=airports.csv
15
- aircraft_database_url=https://opensky-network.org/datasets/metadata/$aircraft_database_filename
16
+ aircraft_database_url=https://opensky-network.org/datasets/metadata/$aircraft_database_zipfilename
16
17
airport_database_url=https://davidmegginson.github.io/ourairports-data/$airport_database_filename
17
18
18
19
load_beluga_db=loadBelugaDb
19
20
load_beluga_db_filename=$load_beluga_db .sh
20
21
path_load_beluga_db=assets/scripts/$load_beluga_db_filename
21
22
load_beluga_db_output_file=$load_beluga_db -output.txt
22
23
24
+ load_aircraftdata=loadAircraftData
25
+ load_aircraftdata_filename=$load_aircraftdata .sh
26
+ path_load_aircraftdata=assets/scripts/$load_aircraftdata_filename
27
+ load_aircraftdata_output_file=$load_aircraftdata -output.txt
28
+
23
29
_ask_user_with_message () {
24
30
read -p " $1 " choice
25
31
case " $choice " in
@@ -35,6 +41,17 @@ _ask_user_with_message() {
35
41
esac
36
42
}
37
43
44
+ _ask_user_for_decision () {
45
+ read -p " $1 " choice
46
+ case " $choice " in
47
+ y | Y) echo " -> Okay, let's do it ..." ;;
48
+ n | N)
49
+ echo " -> Okay, we skip that step." ;;
50
+ * )
51
+ echo " -> Invalid answer." ;;
52
+ esac
53
+ }
54
+
38
55
_docker_run () {
39
56
echo " Run the containers ..."
40
57
docker compose up
@@ -146,7 +163,8 @@ _copy_db_content_to_container() {
146
163
147
164
_download_aircraft_database () {
148
165
echo " Download $aircraft_database_filename from Opensky-Network ..."
149
- docker exec -ti $container_name_db bash -c " wget $aircraft_database_url -O $aircraft_database_filename "
166
+ docker exec -ti $container_name_db bash -c " wget $aircraft_database_url -O $aircraft_database_zipfilename "
167
+ docker exec -ti $container_name_db bash -c " unzip $aircraft_database_zipfilename -o -j"
150
168
echo " -> Download $aircraft_database_filename from Opensky-Network. Done."
151
169
152
170
echo " Copy $aircraft_database_filename to $path_db_content ..."
@@ -170,12 +188,24 @@ _copy_load_db_script_to_container() {
170
188
echo " -> Copy $load_beluga_db_filename to container. Done."
171
189
}
172
190
191
+ _copy_load_aircraftdata_script_to_container () {
192
+ echo " Copy $load_aircraftdata_filename to container ..."
193
+ docker cp $path_load_aircraftdata $container_name_db :$load_aircraftdata_filename
194
+ echo " -> Copy $load_aircraftdata_filename to container. Done."
195
+ }
196
+
173
197
_exec_load_db_script () {
174
198
echo " Execute $load_beluga_db_filename on container to populate database with content ..."
175
199
docker exec $container_name_db bash -c " . $load_beluga_db_filename " > $load_beluga_db_output_file
176
200
echo " -> Execute $load_beluga_db_filename on container to populate database with content. Done."
177
201
}
178
202
203
+ _exec_load_aircraftdata_script () {
204
+ echo " Execute $load_aircraftdata_filename on container to populate database with aircraftdata ..."
205
+ docker exec $container_name_db bash -c " . $load_aircraftdata_filename " > $load_aircraftdata_output_file
206
+ echo " -> Execute $load_aircraftdata_filename on container to populate database with aircraftdata. Done."
207
+ }
208
+
179
209
_load_db_content () {
180
210
echo " Load csv files into postgres database ..."
181
211
if _check_tables_exist -eq 0; then
@@ -202,8 +232,66 @@ _load_db_content() {
202
232
echo " -> File $airport_database_filename already exists. Done."
203
233
fi
204
234
235
+ _copy_load_aircraftdata_script_to_container
236
+ _copy_load_db_script_to_container
237
+
238
+ _exec_load_aircraftdata_script
239
+ _exec_load_db_script
240
+ }
241
+
242
+ _update_db_content () {
243
+ echo " update ... ask user for download of current version ..."
244
+
245
+ echo " Download $aircraft_database_filename ... "
246
+
247
+ if [[ -z $( docker exec -ti $container_name_db bash -c " if test -f $aircraft_database_filename ; then echo exists; fi" ) ]]; then
248
+ echo " -> file $aircraft_database_filename does not exist, download required."
249
+ _download_aircraft_database
250
+ else
251
+ if [[ $# -eq 0 ]]; then
252
+ _ask_user_for_decision " Do you want to download current version of $aircraft_database_filename (y/n)?"
253
+ if [ " $choice " != " ${choice# [Yy]} " ] ; then
254
+ echo " $aircraft_database_filename exists. Download for update requested."
255
+ _download_aircraft_database
256
+ else
257
+ if [ " $choice " != " ${choice# [Nn]} " ] ; then
258
+ echo " -> $aircraft_database_filename exists. Download for update not requested."
259
+ else
260
+ echo " -> Invalid answer: $choice . Operation cancelled. Try again."
261
+ exit
262
+ fi
263
+ fi
264
+ fi
265
+ fi
266
+
267
+ echo " Download $airport_database_filename ... "
268
+
269
+ if [[ -z $( docker exec -ti $container_name_db bash -c " if test -f $airport_database_filename ; then echo exists; fi" ) ]]; then
270
+ echo " -> file $aircraft_database_filename does not exist, download required."
271
+ _download_airport_database
272
+ else
273
+ if [[ $# -eq 0 ]]; then
274
+ _ask_user_for_decision " Do you want to download current version of $airport_database_filename (y/n)?"
275
+ if [ " $choice " != " ${choice# [Yy]} " ] ; then
276
+ echo " $airport_database_filename exists. Download for update requested."
277
+ _download_airport_database
278
+ else
279
+ if [ " $choice " != " ${choice# [Nn]} " ] ; then
280
+ echo " -> $airport_database_filename exists. Download for update not requested."
281
+ else
282
+ echo " -> Invalid answer: $choice . Operation cancelled. Try again."
283
+ exit
284
+ fi
285
+ fi
286
+ fi
287
+ fi
288
+
289
+ echo " update ... Loading csv files into postgres database ..."
290
+
291
+ _copy_load_aircraftdata_script_to_container
205
292
_copy_load_db_script_to_container
206
293
294
+ _exec_load_aircraftdata_script
207
295
_exec_load_db_script
208
296
}
209
297
0 commit comments