@@ -631,15 +631,15 @@ func generateUnitsInfoMap(units []*parser.UnitFile) map[string]*quadlet.UnitInfo
631
631
}
632
632
633
633
func main () {
634
- if err := process (); err != nil {
635
- Logf ("%s" , err . Error () )
634
+ if processErred := process (); processErred {
635
+ Logf ("processing encountered some errors" )
636
636
os .Exit (1 )
637
637
}
638
638
os .Exit (0 )
639
639
}
640
640
641
- func process () error {
642
- var prevError error
641
+ func process () bool {
642
+ var processErred bool
643
643
644
644
prgname := path .Base (os .Args [0 ])
645
645
isUserFlag = strings .Contains (prgname , "user" )
@@ -648,7 +648,7 @@ func process() error {
648
648
649
649
if versionFlag {
650
650
fmt .Printf ("%s\n " , rawversion .RawVersion )
651
- return prevError
651
+ return processErred
652
652
}
653
653
654
654
if verboseFlag || dryRunFlag {
@@ -660,15 +660,13 @@ func process() error {
660
660
}
661
661
662
662
reportError := func (err error ) {
663
- if prevError != nil {
664
- err = fmt .Errorf ("%s\n %s" , prevError , err )
665
- }
666
- prevError = err
663
+ Logf ("%s" , err .Error ())
664
+ processErred = true
667
665
}
668
666
669
667
if ! dryRunFlag && flag .NArg () < 1 {
670
668
reportError (errors .New ("missing output directory argument" ))
671
- return prevError
669
+ return processErred
672
670
}
673
671
674
672
var outputPath string
@@ -694,7 +692,7 @@ func process() error {
694
692
// containers/podman/issues/17374: exit cleanly but log that we
695
693
// had nothing to do
696
694
Debugf ("No files parsed from %s" , sourcePathsMap )
697
- return prevError
695
+ return processErred
698
696
}
699
697
700
698
for _ , unit := range units {
@@ -707,7 +705,7 @@ func process() error {
707
705
err := os .MkdirAll (outputPath , os .ModePerm )
708
706
if err != nil {
709
707
reportError (err )
710
- return prevError
708
+ return processErred
711
709
}
712
710
}
713
711
@@ -730,31 +728,35 @@ func process() error {
730
728
731
729
for _ , unit := range units {
732
730
var service * parser.UnitFile
733
- var err error
731
+ var warnings , err error
734
732
735
733
switch {
736
734
case strings .HasSuffix (unit .Filename , ".container" ):
737
735
warnIfAmbiguousName (unit , quadlet .ContainerGroup )
738
- service , err = quadlet .ConvertContainer (unit , isUserFlag , unitsInfoMap )
736
+ service , warnings , err = quadlet .ConvertContainer (unit , isUserFlag , unitsInfoMap )
739
737
case strings .HasSuffix (unit .Filename , ".volume" ):
740
738
warnIfAmbiguousName (unit , quadlet .VolumeGroup )
741
- service , err = quadlet .ConvertVolume (unit , unit .Filename , unitsInfoMap , isUserFlag )
739
+ service , warnings , err = quadlet .ConvertVolume (unit , unit .Filename , unitsInfoMap , isUserFlag )
742
740
case strings .HasSuffix (unit .Filename , ".kube" ):
743
741
service , err = quadlet .ConvertKube (unit , unitsInfoMap , isUserFlag )
744
742
case strings .HasSuffix (unit .Filename , ".network" ):
745
- service , err = quadlet .ConvertNetwork (unit , unit .Filename , unitsInfoMap , isUserFlag )
743
+ service , warnings , err = quadlet .ConvertNetwork (unit , unit .Filename , unitsInfoMap , isUserFlag )
746
744
case strings .HasSuffix (unit .Filename , ".image" ):
747
745
warnIfAmbiguousName (unit , quadlet .ImageGroup )
748
746
service , err = quadlet .ConvertImage (unit , unitsInfoMap , isUserFlag )
749
747
case strings .HasSuffix (unit .Filename , ".build" ):
750
- service , err = quadlet .ConvertBuild (unit , unitsInfoMap , isUserFlag )
748
+ service , warnings , err = quadlet .ConvertBuild (unit , unitsInfoMap , isUserFlag )
751
749
case strings .HasSuffix (unit .Filename , ".pod" ):
752
750
service , err = quadlet .ConvertPod (unit , unit .Filename , unitsInfoMap , isUserFlag )
753
751
default :
754
752
Logf ("Unsupported file type %q" , unit .Filename )
755
753
continue
756
754
}
757
755
756
+ if warnings != nil {
757
+ Logf ("%s" , warnings .Error ())
758
+ }
759
+
758
760
if err != nil {
759
761
reportError (fmt .Errorf ("converting %q: %w" , unit .Filename , err ))
760
762
continue
@@ -776,7 +778,7 @@ func process() error {
776
778
}
777
779
enableServiceFile (outputPath , service )
778
780
}
779
- return prevError
781
+ return processErred
780
782
}
781
783
782
784
func init () {
0 commit comments