@@ -135,7 +135,7 @@ apt_source_line_to_deb822_line () {
135
135
values=$( echo " ${field} " | cut -d' =' -f2 | tr ' ,' ' ' )
136
136
options[${key} ]=" ${values} "
137
137
else
138
- echo " Invalid option detected: ${field} " 1>&2
138
+ log_warn " Invalid option detected: ${field} "
139
139
fi
140
140
141
141
continue
@@ -162,7 +162,7 @@ apt_source_line_to_deb822_line () {
162
162
local components
163
163
if [[ ${current_step} -eq 4 ]]; then
164
164
if [[ ${suites_is_path} -eq 1 ]]; then
165
- echo " Invalid entry: Suites is a path, skipping components" 1>&2
165
+ log_warn " Invalid entry encountered : Suites is a path, skipping components"
166
166
else
167
167
components+=" ${field} "
168
168
fi
@@ -208,6 +208,7 @@ deb822_entry_to_source_lines () {
208
208
entry=$( echo -e " ${entry} " )
209
209
210
210
if [[ -z " ${entry} " ]]; then
211
+ log_verbose " Skipping empty entry"
211
212
return
212
213
fi
213
214
@@ -241,7 +242,7 @@ deb822_entry_to_source_lines () {
241
242
entry_enabled=0
242
243
else
243
244
log_err " Invalid value for key \" Enabled\" in file ${file} "
244
- return
245
+ return 1
245
246
fi
246
247
;;
247
248
Types)
@@ -265,22 +266,22 @@ deb822_entry_to_source_lines () {
265
266
# Check if all required fields are present
266
267
if [[ -z " ${entry_types} " ]]; then
267
268
log_err " Missing required field \" Types\" in file ${file} "
268
- return
269
+ return 1
269
270
fi
270
271
271
272
if [[ -z " ${entry_uris} " ]]; then
272
273
log_err " Missing required field \" URIs\" in file ${file} "
273
- return
274
+ return 1
274
275
fi
275
276
276
277
if [[ -z " ${entry_suites} " ]]; then
277
278
log_err " Missing required field \" Suites\" in file ${file} "
278
- return
279
+ return 1
279
280
fi
280
281
281
282
if [[ -z " ${entry_components} " ]] && [[ " ${entry_suites} " == * /* ]]; then
282
283
log_err " Missing required field \" Components\" in file ${file} "
283
- return
284
+ return 1
284
285
fi
285
286
286
287
# Convert the entry to apt-list format
@@ -324,6 +325,7 @@ deb822_entry_to_source_lines () {
324
325
done
325
326
326
327
# Return the apt-list formatted entries
328
+ log_verbose " Created ${# apt_list_entries[@]} apt-list entries for Deb822 entry"
327
329
echo " ${apt_list_entries[@]} "
328
330
}
329
331
@@ -348,6 +350,10 @@ to_deb822 () {
348
350
if [[ ${line} =~ ^(deb| # deb|deb-src|#deb-src) ]]; then
349
351
local deb822
350
352
deb822=$( apt_source_line_to_deb822_line " ${line} " )
353
+ if [[ $? -ne 0 ]]; then
354
+ log_verbose " There were errors while converting an entry from ${file} "
355
+ errors=1
356
+ fi
351
357
echo -e " ${deb822} \n" >> " ${tmpfile} "
352
358
else
353
359
# Copy comments as is
@@ -361,25 +367,11 @@ to_deb822 () {
361
367
fi
362
368
done < " ${file} "
363
369
364
- if [[ ${write_to_file} -eq 1 ]]; then
365
- # Create backup if not disabled
366
- if [[ ${no_backup} -eq 0 ]]; then
367
- mv " ${file} " " ${file} .bak"
368
- else
369
- rm -f " ${file} " || log_warn " Failed to remove original file: ${file} "
370
- fi
371
- # Rename file to .sources and replace original file
372
- new_file_name=" ${file% .list.distUpgrade} "
373
- new_file_name=" ${new_file_name% .list} "
374
- new_file_name=" ${new_file_name} .sources"
375
- mv " ${tmpfile} " " ${new_file_name} "
376
- else
377
- cat " ${tmpfile} "
378
- if [[ ${no_null} -eq 0 ]]; then
379
- echo -ne " \0"
380
- fi
381
- rm -f " ${tmpfile} " || log_warn " Failed to remove temporary file: ${tmpfile} "
382
- fi
370
+ new_file_name=" ${file% .list.distUpgrade} "
371
+ new_file_name=" ${new_file_name% .list} "
372
+ new_file_name=" ${new_file_name} .sources"
373
+
374
+ write_output_files " ${tmpfile} " " ${file} " " ${new_file_name} "
383
375
}
384
376
385
377
# Converts a file in deb822 format to apt-list format
@@ -412,19 +404,34 @@ to_list () {
412
404
for entry in " ${entries[@]} " ; do
413
405
local apt_source_lines
414
406
apt_source_lines=$( deb822_entry_to_source_lines " ${entry} " )
407
+ if [[ $? -ne 0 ]]; then
408
+ log_verbose " There were errors while converting an entry from ${file} "
409
+ errors=1
410
+ fi
415
411
echo -e " ${apt_source_lines} \n" >> " ${tmpfile} "
416
412
done
417
413
414
+ write_output_files " ${tmpfile} " " ${file} " " ${file% .sources} .list"
415
+ }
416
+
417
+ # Writes the output files or prints to STDOUT
418
+ #
419
+ # Arguments:
420
+ # $1: The temporary file to write
421
+ # $2: The original file to replace
422
+ # $3: The new file name
423
+ write_output_files () {
424
+ local tmpfile=" $1 "
425
+ local file=" $2 "
426
+ local new_file_name=" $3 "
427
+
418
428
if [[ ${write_to_file} -eq 1 ]]; then
419
429
# Create backup if not disabled
420
430
if [[ ${no_backup} -eq 0 ]]; then
421
431
mv " ${file} " " ${file} .bak"
422
432
else
423
433
rm -f " ${file} " || log_warn " Failed to remove original file: ${file} "
424
434
fi
425
- # Rename file to .list and replace original file
426
- new_file_name=" ${file% .sources} "
427
- new_file_name=" ${new_file_name} .list"
428
435
mv " ${tmpfile} " " ${new_file_name} "
429
436
else
430
437
cat " ${tmpfile} "
@@ -480,17 +487,30 @@ show_version () {
480
487
echo " ${REPO_URL} "
481
488
}
482
489
483
- # Logs an error message
490
+ # Global error flag
491
+ errors=0
492
+
493
+ # Logs an error message and sets the error flag
494
+ #
495
+ # Arguments:
496
+ # $1: The error message to log
484
497
log_err () {
498
+ errors=1
485
499
echo " ERROR: $1 " 1>&2
486
500
}
487
501
488
502
# Logs a warning message
503
+ #
504
+ # Arguments:
505
+ # $1: The warning message to log
489
506
log_warn () {
490
507
echo " WARNING: $1 " 1>&2
491
508
}
492
509
493
- # Logs a verbose message
510
+ # Logs a verbose message if verbose logging is enabled
511
+ #
512
+ # Arguments:
513
+ # $1: The verbose message to log
494
514
log_verbose () {
495
515
if [[ ${verbose} -eq 1 ]]; then
496
516
echo " VERBOSE: $1 " 1>&2
@@ -528,7 +548,7 @@ main () {
528
548
if [[ " ${arg} " == " -" * ]]; then
529
549
cli_options+=( " ${arg} " )
530
550
else
531
- log_err " Unknown argument given. Expected mode or cli_options ."
551
+ log_err " Unknown argument given. Expected mode or options ."
532
552
exit 1
533
553
fi
534
554
fi
@@ -570,6 +590,7 @@ main () {
570
590
;;
571
591
-v|--verbose)
572
592
verbose=1
593
+ log_verbose " Verbose logging enabled"
573
594
;;
574
595
--no-backup)
575
596
no_backup=1
@@ -612,6 +633,7 @@ main () {
612
633
log_warn " Ignoring --write option when reading from STDIN"
613
634
write_to_file=0
614
635
fi
636
+ log_verbose " Reading from STDIN"
615
637
local tmpfile
616
638
tmpfile=$( read_stdin_to_tempfile)
617
639
files=( " ${tmpfile} " )
@@ -653,6 +675,10 @@ main () {
653
675
for file in " ${remove_files[@]} " ; do
654
676
rm -f " ${file} " || log_warn " Failed to remove temporary file: ${file} "
655
677
done
678
+
679
+ if [[ ${errors} -eq 1 ]]; then
680
+ exit 1
681
+ fi
656
682
}
657
683
658
684
# Pass all arguments to main
0 commit comments